English Sentence Loading...............


屏蔽trackbacks广告--已修正

终于完成了trackbacks随机生成码的修改,那些讨厌的的广告可以消失了...不过唯一的缺点是以前track过去的用户现在要重新track一遍...
原理是SIC提出的...当trackback的ping的时候多了一个必要参数,该参数是在新建日志时自动生成随机数写入数据库...这样trackbacks链接地址就无规律了,只有到本站查看才可以添加trackbacks,以防止track广告机器人程序...
找不到SIC那篇曰志的链接了(知道这地址的跟下贴)...

class/article.asp中找到
this.prevArticle;

下添加
this.trackbackSecurityCode;


在// Insert --------------------------程序段中
"log_ubbFlags": this.ubbFlags,

下添加一项(注意}前没有,号,两项之间用,号分隔)
"log_tbksecuritycode":this.trackbackSecurityCode,


找到// Fill Article Object -------------------
在this.fill中添加一项(放在最后)
this.trackbackSecurityCode=arr["log_tbksecuritycode"];

 
 
 
class/cache.asp中找到
// Fill Recent Articles Array ----------------------------
this.recentArticles[i]=

添加一项(注意}前没有,号,两项之间用,号分隔)
,"log_tbksecuritycode": arr.getItem,(20,i),
,数字为上一项的数字+1

找到
    // Get all article that later than that time
      // Don't change the order of the fields in SQL string,在下面的SQL语句中多+一个字段log_tbksecuritycode

例:

      // Don't change the order of the fields in SQL string
      tmpA=connBlog.query("SELECT log_id, log_catID, log_authorID, log_author, log_title, log_content0, log_content1, log_editMark, log_mode, log_locked, log_selected, log_ubbFlags, log_trackbackURL, log_postTime, log_ip, log_commentCount, log_viewCount, log_trackbackCount, log_tags, log_top,log_tbksecuritycode FROM [blog_Article] WHERE log_id IN ("+arrList+") ORDER BY" + (bTop ? " log_top DESC," : "") + " log_postTime DESC",undefined,undefined,true);


 
 
 
source/src_default.asp中找到
  if(viewMode==1){
    strSQL+="log_id, log_catid, log_title, log_authorid, log_author, log_mode, log_ubbFlags, log_postTime, log_ip, log_locked, log_selected, log_commentcount, log_viewcount, log_trackbackcount";
  }else{
    strSQL+="log_id, log_catid, log_title, log_content0, Left(log_content1,2) as log_content1, log_authorid, log_author, log_mode, log_ubbFlags, log_postTime, log_ip, log_locked, log_selected, log_commentcount, log_viewcount, log_trackbackcount";
 

添加一项log_tbksecuritycode

例:
  if(viewMode==1){
    strSQL+="log_id, log_catid, log_title, log_authorid, log_author, log_mode, log_ubbFlags, log_postTime, log_ip, log_locked, log_selected, log_commentcount, log_viewcount, log_trackbackcount,log_tbksecuritycode";
  }else{
    strSQL+="log_id, log_catid, log_title, log_content0, Left(log_content1,2) as log_content1, log_authorid, log_author, log_mode, log_ubbFlags, log_postTime, log_ip, log_locked, log_selected, log_commentcount, log_viewcount, log_trackbackcount,log_tbksecuritycode";
 

 
 
 
scource/src_article中找到
// Insert new article下添加
theArticle.trackbackSecurityCode=func.randomStr(4,"0123456789");

 
 
 
scoure/src_trackback.asp中找到
    if(!input["url"]||!input["id"]){
      trackbackResponse(1,"Invalid Parameter");
    }else if(theCache.settings["enableTrackbackIn"]!=1){
      trackbackResponse(1,"Trackback Disabled");
    }else{
    trackbackSave();            
    }

改成
    if(!input["url"]||!input["id"]||!input["sc"]){
      trackbackResponse(1,"Invalid Parameter");
    }else if(theCache.settings["enableTrackbackIn"]!=1){
      trackbackResponse(1,"Trackback Disabled");
    }else{
     var tbksc={"log_id": input["id"],
                     "sc": input["sc"],
                  "be_sc": ""
               }
        tbksc.log_id=func.checkInt(input["id"]);
        tbksc.sc=func.checkInt(tbksc.sc);
        var tmpA=connBlog.query("select log_tbksecuritycode from blog_Article where log_id="+tbksc.log_id);
        tbksc.be_sc=tmpA[0]["log_tbksecuritycode"];
          if(tbksc.be_sc==tbksc.sc){
            trackbackSave();
            }
            else{
            trackbackResponse(1,"Trackback Disabled");
            }
            
    }

 
 
 
article.asp中找到
<img src="<%=theCache.settings["imageFolder"]%>/utf8.png"  class="meta-button" alt="UTF-8 Encoding" /> <b><%=lang["trackback_url"]%>:</b> <%=theCache.settings["baseURL"]+"trackback.asp?id="+theArticle.id%>

改成
<img src="<%=theCache.settings["imageFolder"]%>/utf8.png"  class="meta-button" alt="UTF-8 Encoding" /> <b><%=lang["trackback_url"]%>:</b> <%=theCache.settings["baseURL"]+"trackback.asp?sc="+theArticle.trackbackSecurityCode+"&id="+theArticle.id%>

 
 
在数据库表Blog_article中添加一个字段log_tbksecuritycode,类型文本,字段大小4
 
 
 
把所有文件中的trackback.asp替换成tbk.asp...
 
 
 
P.S.1 如果是有人盯上了你的Blog,那就没办法了,还是关trackbacks吧...

P.S.2 老的日志没有trackback的验证码,要手动添加太多了,于是我写了个程序自动生成...

安装说明:

  • 解压后传至Blog根目录
  • 在IE中输入 您的域名/update_tbksc.asp

  • 数据生成完毕后立即删除本网页

[file=uploads/200607/18_234723_update_tbksc.rar]点击下载[/file]

文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 10 | 引用: 0 | 查看次数: 11679
回复回复exgods[2007-11-21 07:06 PM | del]
[quote=myst]
对了,还有一问,怎样能让游客的ID不产生超链接?
谢谢
[/quote]

要改源码的...用vs2005调试就知道了..
最近太忙了,都没时间来这的...不好意思,这么晚才回...
回复回复myst[2007-10-31 01:24 AM | del]
对了,还有一问,怎样能让游客的ID不产生超链接?
谢谢
回复回复myst[2007-10-31 01:14 AM | del]
哦……我理解岔了
我以为你意思是只把文件内容改掉,没有说trackback.asp这个文件名
太呆了……

谢谢
回复回复exgods[2007-10-30 11:34 PM | del]
[quote=myst]
有一个小小的问题
为什么要把所有文件中的trackback.asp替换成tbk.asp?
不是太明白这一个
[/quote]

当然是为了屏蔽广告软件...因为一般LBS的通用地址是一样的,如果你改了那中招机会要小点了.名字你可以随便取..
现在我不用这个防广告了,现在用一个wordpress的防广告功能,只会偶尔漏几条鱼.
回复回复myst[2007-10-30 04:26 PM | del]
有一个小小的问题
为什么要把所有文件中的trackback.asp替换成tbk.asp?
不是太明白这一个
回复回复exgods[2006-07-25 10:56 PM | del]
今天帮[http://www.alonefly.com]alonefly[/url]改屏蔽TB广告时发现这里的修改代码里少了些,也许至使一些博友不能成功修改,这里我向大家道歉...

现已修正~
回复回复exgods[2006-07-24 06:25 PM | del]
现在的trackbacks广告机器人是利用trackbacks的规律做的,比如id=7的文章它的trackbacks URL=trackbacks.asp?id=7,这样只要知道文章的ID就行推出URL...加了随机码后URL没有规律了,只有查看网页才能知道这个URL,所以刚好屏障了现今的机器人程序...

原来用户的URL还是原来有规律的URL,当然通不过现在改后的程序了...所以也没办法,不过应该大部分人别人真正trackbacks的文章数应该不多...  

如果谁有更好的办法,分享下...
回复回复星辉一冷[2006-07-24 01:22 PM | del]
支持下
我没细看
有点不明白的是为什么原来Trackback过的用户要重新TB?
希望可以再优化一下。
回复回复exgods[2006-07-22 11:28 AM | del]
经过我这几天试用下来,感觉这还蛮管用的..

监视来源,发现是欧洲的一个家伙一直在我博客发广告,哈..现在他没办法了...

P.S.如果出现Bug请通知我....
回复回复happyseven[2006-07-21 10:52 PM | del]
呵呵,你救了我一命啊
我今天刚刚删除了100多条trackback广告
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭