Related Posts
- wordpress security fix [安全更新]( 1 )A vulnerability in the Snoopy library was announced today. WordPress uses Snoopy to ...
- 简单的Wordpress投稿插件( 31 )如果你用wordpress搭建的并不是个人博客而是一个分享类型的并希望有人给你投稿.就需要个投...
- 我做的插件: Ajax home page( 67 )这是我写的第一个Wordpress插件.用于实现Wordpress首页分页部分的Ajax分页效果.具体是什么...
- 高亮搜索结果( 19 )前一段时间给博客添加了搜索评论的功能, 被人骂成是鸡肋. 忧伤. 劳动成果居然没有得到肯定....
- 主题:PhilNa( 33 )主题 PhilNa发现我是个空虚的人,现在时间紧迫,前途渺茫,我还是手痒痒,参照hybrid和inove盗...
Submitting Comment, Give me a second...
Leave a comment
Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">
Trackbacks & Pingbacks ( 0 )
-
No trackbacks yet.
阻止直接 POST 过来的 Spam
几天前收到很多 spam, 居然大部分来自同一个 IP. 我只好在数据库里用 SQL 语句删掉. 再去看访问日志. 发现这个 IP 几乎是直接向我的 wp-comments-post.php 这个文件 POST 数据. 也就是说它根本没有访问文章. 我很气愤.
现在想到的解决方案是用 SESSION 来阻止. 写成插件 ( Stop post spam ). 本地测试有效. 但要是用了 HTML 静态缓存就不知到了. 可能会导致任何人都无法提交? 不过总的来说这个是不适合完全静态页面的, 除非我们的隐藏域设置为固定的值? 这个有恐怕无法到达很好的阻止作用. 两难啊. 唉. 反正我也不用缓存插件. 不管了. 交给爱折腾的人吧.
再和大家说说我的流程是怎样的.
插件激活后通过 StopPOSTSpam 类的构造函数挂载方法到 WordPress 自身的 HOOKs 上. (怎么听上去有点拗口… (- -!))
用到的钩子: init, template_redirect, comment_form, pre_comment_on_post
具体实现流程:
正常访问状态, 访客访问可以评论的页面(比如普通的日志页面), PHP 执行如下:
直接POST数据时: 没有通过 template_redirect 这一步来生成 SESSION 当然是不能通过的. 它会被当成 spam 而阻止进一步向数据库提交.
最后祝大家元旦快乐, 我不想写感悟, 也不想总结. 反正这半年来过的真是不怎么样. 这算是2009最后一个小时的文章吧. 过几天的考试. 唉~ 我可能会死 ‘很惨’ . 有时间和爱心的朋友到时候可要过来安慰我啊…
下载这个插件.
Update:
在无法使用 session 的情况下改为判断来路. 不知是否试用于静态页面. 欢迎测试.
声明:本站遵循署名-非商业性使用-相同方式共享3.0共享协议. 转载请注明转自 PhilNa ™