student 发表于 2007-5-27 21:09:26

PJBlog防止垃圾评论的方法

最近我的BLOG经常出现垃圾评论,平均一个小时三四条。真让人烦。<br/><br/>分析原因:<br/><br/>&nbsp;程序代码<br/>blogcomm.asp文件对验证码判断不严格。<br/>如果用户没有请求过GetCode.asp文件,那么服务器端Session里面的GetCode值为空,而用户提交的数据里面验证码也为空,这样刚好空等于空,反而通过了验证码验证。<br/><br/><br/>解决方法:<br/>以前看了官方的插件,但是没用。我这里应用最简单的方法(改变验证码也为空的方法),来防止广告机发垃圾评论。<br/>修改:class/cls_article.asp文件<br/><br/>&nbsp;程序代码<br/>&lt;input&nbsp;name="validate"&nbsp;type="text"&nbsp;size="4"&nbsp;<br/>class="userpass"&nbsp;maxlength="4"/&gt;<br/><br/>修改为:<br/><br/>&nbsp;程序代码<br/>&lt;input&nbsp;name="validate"&nbsp;type="text"&nbsp;size="12"&nbsp;<br/>class="userpass"&nbsp;maxlength="12"&nbsp;&nbsp;value="请输入验证码"&nbsp;onmouseover="this.focus()"&nbsp;onblur="if&nbsp;(this.value&nbsp;=='')this.value='请输入验证码'"&nbsp;onfocus="this.select()"&nbsp;onclick="if&nbsp;(this.value=='请输入验证码')&nbsp;this.value=''"/&gt;<br/>

pqshow 发表于 2007-6-16 11:02:49

<p><font color="#e66b1a">方法二:</font></p><p> 每天清理Blog的广告评论和留言就得花上不少时间,甚至有一次3天没上网,打开Blog发现90多条广告评论,顿时觉悟:是时候改进PJ的验证方式了。最近看到mifly的WP上采用了新的验证码,形式是一道加法运算题,简单明了,而且也对于浏览者来说,填写一个1到2位数的答案,比起填写4到6位数的验证码舒服多了。<br/>  于是自己稍微研究了PJ的验证码机制,参照BoBlog的类似功能,做一点改动,初步实现加法运算形式的用户验证。当然WP上那个算法验证码是随机生成的,技术含量比我这个简单的小修改强很多,具体修改效果如下:</p><p><br/>修改方法:<br/>1. 打开common目录下的function.asp,在大约50行左右可以找到以下代码:</p><p>程序代码<br/>'*************************************<br/>'获得注册码<br/>'************************************* <br/>'Function getcode() <br/>'getcode= "&lt;img src=""common/getcode.asp"" alt="""" style=""margin-right:40px;""/&gt;" <br/>'End Function</p><p><br/>2. 将其替换为以下代码:</p><p>程序代码<br/>'*************************************<br/>'获得注册码<br/>'************************************* <br/>'Function getcode() <br/>getcode= "&lt;img src=""common/getcode.asp"" alt="""" style=""margin-right:40px;""/&gt;" <br/>'End Function</p><p>'*************************************<br/>'获得注册码,运算问题<br/>'NewValidate For PJblog2 BY Bigheadlyf<br/>'更新时间: 2007-4-4<br/>'*************************************<br/>Function getcode()</p><p>Dim QuesionNum<br/>QuesionNum=7 '问题的总数,如要添加问题,请先修改这个数值<br/>Dim CodeIndex<br/>CodeIndex=0</p><p>Dim QuesionArray(100)<br/>Dim AnswerArray(100)</p><p>QuesionArray(0)="= 1 + 1" '问题列表及答案,可自行修改<br/>AnswerArray(0)="2"<br/>QuesionArray(1)="= 2 + 2"<br/>AnswerArray(1)="4"<br/>QuesionArray(2)="= 3 + 4"<br/>AnswerArray(2)="7"<br/>QuesionArray(3)="= 2 + 4"<br/>AnswerArray(3)="6"<br/>QuesionArray(4)="= 1 + 2"<br/>AnswerArray(4)="3"<br/>QuesionArray(5)="= 2 + 3"<br/>AnswerArray(5)="5"<br/>QuesionArray(6)="= 4 + 4"<br/>AnswerArray(6)="8"</p><p>Randomize<br/>CodeIndex = Int((QuesionNum * Rnd) + 0)<br/>Session("GetCode") = AnswerArray(CodeIndex)<br/>getcode = "&lt;span style=""margin-right:40px;""&gt;" &amp; QuesionArray(CodeIndex) &amp; "&lt;/span&gt;"<br/>End Function</p><p></p><p>3. 保存文件,上传到服务器,测试~</p><p>4. **修改建议:<br/>问题可以设置为加减乘除任意问题或者**文字问题,例如“987 x 654 = ?”、“中国有几个少数民族?”等等,不要让浏览者答不上就可以了:P。<br/>建议将验证码输入框宽度改小些,且最大输入字符数设置为2。 </p><p></p>

pqshow 发表于 2007-6-16 11:07:29

方法三:最简单:进后台设置一下发贴字数,估计一下广告贴一般情况下有多少个字,加以限制,再配合方法二一起使用.这应该是防止广告最有效的方法了!
页: [1]
查看完整版本: PJBlog防止垃圾评论的方法