插件下载┊垃圾引用防御补丁(每小时自动换KEY,支持静态页面)

2018-09-06 12:41

阅读:392

  发布人:向导
补丁名:垃圾引用防御补丁
发布时间:2007-1-4
版本号:第3版
适用版本:PJblog2.6
原作者:向导
演示地址:
下载地址:
插件简介:能有效防止垃圾引用。加密递交地址,第2版增加KEY验证,并每小时自动更换一次key。
本版本不修改数据库,只修改了4个文件,并支持静态页模式!

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

具体安装方法如下:

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

查找
IfNot(IsInteger(Request.QueryString(tbID))ANDIsInteger(Request.QueryString(logID)))Then
替换成
IfNotIsInteger(Decrypt(Request.QueryString(tbID)))ANDIsInteger(Request.QueryString(logID))Then

查找
Whereblog_ID=&logID&ANDtb_ID=&CheckStr(Request.QueryString(tbID))
替换成
Whereblog_ID=&logID&ANDtb_ID=&Decrypt(CheckStr(Request.QueryString(tbID)))
**有2处



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


dimkeys,keys1
keys=Request.QueryString(key)
keys1=Encrypt((year(now))&(Month(now))&(day(now))&hour(now()))
ifkeys<>keys1then
Response.c
Response.write<?xmlversion=1.0encoding=UTF-8?><?xml-stylesheettype=text/xslhref=tb.xsl?>
%>
<response><error>1</error><message>您递交的信息已过期.请检查...</message></response>
<%
else


dimstrget
strget=trim(Request.QueryString(tbID))
iflen(strget)>8then
Response.c
Response.write<?xmlversion=1.0encoding=UTF-8?><?xml-stylesheettype=text/xslhref=tb.xsl?>
%>
<response><error>1</error><message>您递交的信息有错误.请检查...</message></response>
<%
else

dimtbIDs
tbIDs=Decrypt(CheckStr(Request.QueryString(tbID)))

iftbIDs<1then
Response.c
Response.write<?xmlversion=1.0encoding=UTF-8?><?xml-stylesheettype=text/xslhref=tb.xsl?>
%>
<response><error>1</error><message>您递交的信息有错误.请检查...</message></response>
<%
else

查找
Trackbackresponsefunction上面加入
endif
endif
endif


********可以不换***********
查找
Response.Redirect(search.asp?searchType=trackback)
替换成
Response.c
Response.write<?xmlversion=1.0encoding=UTF-8?><?xml-stylesheettype=text/xslhref=tb.xsl?>
%>
<response><error>1</error><message>日志ID错误.请检查......</message></response>
<%
查找
<response><error>1</error><message>日志没有被引用.</message></response>
替换成
<response><error>1</error><message>日志(ID=<%Response.writetbID%>)没有被引用.</message></response>

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



===========================================================
文件class\cls_article.asp
查找
引用通告地址:<ahref=<%=(SiteURL&trackback.asp?tbID=&id)%>><%=(SiteURL&trackback.asp?tbID=&id)%></a>
替换成
引用通告地址:<ahref=<%=(SiteURL&trackback.asp?tbID=&Encrypt(id)&&key=&Encrypt((year(now))&(Month(now))&(day(now))&hour(now())))%>><%=(SiteURL&trackback.asp?tbID=&Encrypt(id)&&key=&Encrypt((year(now))&(Month(now))&(day(now))&hour(now())))%></a>
查找
SubShowComm(LogID,comDesc,DisComment)
在下面添加
dimk1
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&

查找
TempArticle=Replace(TempArticle,<&%ST(A)%&>,)
替换成
dimk1
k1=Encrypt((year(now))&(Month(now))&(day(now))&hour(now()))
TempArticle=Replace(TempArticle,<&%ST(A)%&>,)
TempArticle=Replace(TempArticle,<&%ST(KEY)%&>,k1)===========================================================
文件class\cls_logAction.asp
查找
Temp1=Replace(Temp1,<$trackback$>,SiteURL&trackback.asp?tbID=&LogID)
替换成
Temp1=Replace(Temp1,<$trackback$>,SiteURL&trackback.asp?tbID=&Encrypt(LogID)&&key=&<&%ST(KEY)%&>)===========================================================
文件common\function.asp
在文件最后,%>的上面添加

FunctionEncrypt(theNumber)
OnErrorResumeNext
Dimn,szEnc,t,HiN,LoN,i
n=CDbl((theNumber+1570)^2-7*(theNumber+1570)-450)
Ifn<0ThenszEnc=RElseszEnc=J
n=CStr(abs(n))
Fori=1ToLen(n)step2
t=Mid(n,i,2)
IfLen(t)=1Then
szEnc=szEnc&t
ExitFor
EndIf
HiN=(CInt(t)And240)/16
LoN=CInt(t)And15
szEnc=szEnc&Chr(Asc(M)+HiN)&Chr(Asc(C)+LoN)
Next
Encrypt=szEnc
EndFunction


FunctionDecrypt(theNumber)
OnErrorResumeNext
Dime,n,sign,t,HiN,LoN,NewN,i
e=theNumber
IfLeft(e,1)=RThensign=-1Elsesign=1
e=Mid(e,2)
NewN=
Fori=1ToLen(e)step2
t=Mid(e,i,2)
IfAsc(t)>=Asc(0)AndAsc(t)<=Asc(9)Then
NewN=NewN&t
ExitFor
EndIf
HiN=Mid(t,1,1)
LoN=Mid(t,2,1)
HiN=(Asc(HiN)-Asc(M))*16
LoN=Asc(LoN)-Asc(C)
t=CStr(HiNorLoN)
IfLen(t)=1Thent=0&t
NewN=NewN&t
Next
e=CDbl(NewN)*sign
Decrypt=CLng((7+sqr(49-4*(-450-e)))/2-1570)
EndFunction
================================================
演示到我的BLOG看。我网络很慢。请您忍耐。
没有修改过这4个文件的用户可以下载下面的覆盖即可。
================================================
使用静态页的需要到后台从新建立所有日记。
不知道还有那不对的。希望大家踊跃测试,拍砖。
点击下载此文件


评论


亲,登录后才可以留言!