官方首页 | 无图版 | BBS首页
PJBlog3 3.0.6.170 新版发布 下载|升级(2008.12.25) 庆圣诞+2009元旦+新春-PJ模板征集活动开始啦! 2008版 PJHOME 珍藏/纪念版官方T恤 正式发布! PJ3内测团队主创人员身份,性格,特点吐血大曝光
PJBlog技术支持论坛使用问题总索引 PJBLOG 3 的心路历程 感谢有你 【独家】我使用过的三种空间,与客服的精彩故事 Z-Blog,Wordpress,Bo-Blog转换到PJBlog
腊月的白菜-都辛苦了!祝PJ所有成员和用户的新年快乐! 苦咖啡个人BLOG-祝PJ越来越好 pjblog3资源收集-PJ加油 Feln's Blog-你们辛苦了啊 ~~
听雨轩-继续努力。。期待着PJ4的在线安装插件 cludechn's blog-加油,以后能有更好的版本推出 移动3G-3G改变生活 爱之音-希望PJ3最终版能加入附件批量上传的功能哈
 46 12345
发新话题
打印

垃圾引用防治补丁 每小时自动更新引用连接[求精]

本主题由 星铃丹 于 2007-1-8 13:14 加入精华

垃圾引用防治补丁 每小时自动更新引用连接[求精]

发 布 人: 向导
    补 丁 名: 防御垃圾引用补丁
    发布时间: 2007-1-4
    版 本 号: 第2版
    适用版本: PJblog 2.6
    原 作 者: 向导
    下载地址: http://bbs.pjhome.net/attachment.php?aid=2038
    演示地址: http://www.hljsh.com/
    插件简介: 能有效防止垃圾引用。加密递交地址,第2版增加KEY验证,并每小时自动更换一次key。本版本不支持静态页模式,静态页模式版稍候提供。

效果
引用通告地址: trackback.asp?tbID=JNKRQOF8&key=JOKNPNKOQPMPPMC0

具体安装方法如下:

===========================================================
文件trackback.asp
查找
tbID = CheckStr(Request.QueryString("tbID"))
替换成
tbID = Decrypt(CheckStr(Request.QueryString("tbID")))

查找
If Not (IsInteger(Request.QueryString("tbID")) AND IsInteger(Request.QueryString("logID"))) Then
替换成
If Not IsInteger(Decrypt(Request.QueryString("tbID"))) AND IsInteger(Request.QueryString("logID")) Then

查找
WHERE blog_ID="&logID&" AND tb_ID="&CheckStr(Request.QueryString("tbID"))
替换成
WHERE blog_ID="&logID&" AND tb_ID="&Decrypt(CheckStr(Request.QueryString("tbID")))
**有2处



查找
'==================================
'  引用通告处理页面
'    更新时间: 2006-6-1
'==================================
在下面加入


dim keys,keys1
keys=Request.QueryString("key")
keys1=Encrypt((year(now))&(Month(now))&(day(now))&hour(now()))
if keys<>keys1 then
                Response.contentType="text/xml"
                Response.write "<?xml version=""1.0"" encoding=""UTF-8""?><?xml-stylesheet type=""text/xsl"" href=""tb.xsl""?>"
                %>
                <response><error>1</error><message>您递交的信息已过期.请检查...</message></response>
                <%
else


dim strget
        strget=trim(Request.QueryString("tbID"))
        if len(strget) > 8 then
                Response.contentType="text/xml"
                Response.write "<?xml version=""1.0"" encoding=""UTF-8""?><?xml-stylesheet type=""text/xsl"" href=""tb.xsl""?>"
                %>
                <response><error>1</error><message>您递交的信息有错误.请检查...</message></response>
                <%
else

  dim tbIDs
  tbIDs = Decrypt(CheckStr(Request.QueryString("tbID")))
  
                if tbIDs < 1 then
                Response.contentType="text/xml"
                Response.write "<?xml version=""1.0"" encoding=""UTF-8""?><?xml-stylesheet type=""text/xsl"" href=""tb.xsl""?>"
                %>
                <response><error>1</error><message>您递交的信息有错误.请检查...</message></response>
                <%
                else
               
               
查找
'Trackback response function上面加入
end if
end if
end if



********可以不换***********
查找
Response.Redirect("search.asp?searchType=trackback")
替换成
Response.contentType="text/xml"
Response.write "<?xml version=""1.0"" encoding=""UTF-8""?><?xml-stylesheet type=""text/xsl"" href=""tb.xsl""?>"
%>
<response><error>1</error><message>日志ID错误.请检查......</message></response>
<%

查找
<response><error>1</error><message>日志没有被引用.</message></response>
替换成
<response><error>1</error><message>日志(ID=<% Response.write tbID %>)没有被引用.</message></response>

********可以不换***********



===========================================================
文件class\cls_article.asp
查找
引用通告地址:<a href="<%=(SiteURL&"trackback.asp?tbID="&id)%>" target="_blank"><%=(SiteURL&"trackback.asp?tbID="&id)%></a>
替换成
引用通告地址:<a href="<%=(SiteURL&"trackback.asp?tbID="&Encrypt(id)&"&key="&Encrypt((year(now))&(Month(now))&(day(now))&hour(now())))%>" target="_blank"><%=(SiteURL&"trackback.asp?tbID="&Encrypt(id)&"&key="&Encrypt((year(now))&(Month(now))&(day(now))&hour(now())))%></a>
查找
Sub ShowComm(LogID,comDesc,DisComment)
在下面添加
dim k1
k1=Encrypt((year(now))&(Month(now))&(day(now))&hour(now()))

查找
href=""trackback.asp?action=deltb&tbID="&commArr(6,Pcount)&"&logID="&LogID&"""
替换成
href=""trackback.asp?action=deltb&tbID="&Encrypt(commArr(6,Pcount))&"&logID="&LogID&"&key="&k1&"""
===========================================================
文件common\function.asp
在文件最后,%>的上面添加


Function Encrypt(theNumber)
On Error Resume Next
Dim n, szEnc, t, HiN, LoN, i
n = CDbl((theNumber + 1570) ^ 2 - 7 * (theNumber + 1570) - 450)
If n < 0 Then szEnc = "R" Else szEnc = "J"
n = CStr(abs(n))
For i = 1 To Len(n) step 2
  t = Mid(n, i, 2)
  If Len(t) = 1 Then
   szEnc = szEnc & t
   Exit For
  End If
  HiN = (CInt(t) And 240) / 16
  LoN = CInt(t) And 15
  szEnc = szEnc & Chr(Asc("M") + HiN) & Chr(Asc("C") + LoN)
Next
Encrypt = szEnc
End Function


Function Decrypt(theNumber)
On Error Resume Next
Dim e, n, sign, t, HiN, LoN, NewN, i
e = theNumber
If Left(e, 1) = "R" Then sign = -1 Else sign = 1
e = Mid(e, 2)
NewN = ""
For i = 1 To Len(e) step 2
  t = Mid(e, i, 2)
  If Asc(t) >= Asc("0") And Asc(t) <= Asc("9") Then
   NewN = NewN & t
   Exit For
  End If
  HiN = Mid(t, 1, 1)
  LoN = Mid(t, 2, 1)
  HiN = (Asc(HiN) - Asc("M")) * 16
  LoN = Asc(LoN) - Asc("C")
  t = CStr(HiN or LoN)
  If Len(t) = 1 Then t = "0" & t
  NewN = NewN & t
Next
e = CDbl(NewN) * sign
Decrypt = CLng((7 + sqr(49 - 4 * (-450 - e))) / 2 - 1570)
End Function
================================================
其他页面我还没有加。请大家一起找找。
演示到我的BLOG看。我网络很慢。请您忍耐。
没有修改过这3个文件的用户可以下载下面的覆盖即可。
================================================
不知道还有那不对的。希望大家踊跃测试,拍砖。

[ 本帖最后由 向导 于 2007-1-4 15:17 编辑 ]
附件: 您所在的用户组无法下载或查看附件
以最小的改动去实现预期的效果。

TOP

也没个人回。
以最小的改动去实现预期的效果。

TOP

等待别人测试结果
我再打补丁哦
LZ肯定要杀了我了吧
偶bloghttp://www.9java.com

TOP

是地。坚决要安装简单。备份几个文件就搞定的。最好连原始文件都不动。
人人都会用就是我的目标。改动数据库对大说数人来说,将来更新是件麻烦事。

[ 本帖最后由 向导 于 2007-1-4 15:40 编辑 ]
以最小的改动去实现预期的效果。

TOP

支持啊!

TOP

不错不错,有空了来试试。
欢迎光临我的博客
行走人生

TOP

这个不错
【 - .腊月的白菜°。.;*   2009新年新气象,小博用上新域名,欢迎友情链接!

TOP

测试的说
希望之深,失望之大……
欢迎来小站雪语Home坐坐

TOP

引用:
原帖由 joahon 于 2007-1-4 15:28 发表
等待别人测试结果
我再打补丁哦
LZ肯定要杀了我了吧
我不会杀你。我也不鄙视你,我歧视yOu~~~
除非给我发个霏凡和嬴政的邀请,
以最小的改动去实现预期的效果。

TOP

呵呵  我也看看再说吧

TOP

 46 12345
发新话题