封杀虚拟提交/灌水等方法总结:
①. 设置留言频率。
例:同一固定IP一分钟内禁止多次留言
②. 验证码输入。
验证码复杂程度设置
③. 激发操作面板标识。
例:鼠标移动到表单域上时动态创建一个hidden表单控件,在服务器端检测是否存
在此hidden控制.灌水机不会产生此JS事件,故服务器端脚本检测时不存在此hidden,数据禁止入库
缺点:不灵活,用户理论上还是可以对数据进行伪造。如果客户不支持JS,则即使
人为输入,也无法提交
④. 留言内容相似度对比。
与现有留言内容比对,相似度超过50%或更多,则禁止入库此方法不好,如果留言记录多,
会很花费时间,所以应该使用过滤词表,适用数据量小的情况]
⑤. 使用过滤词表。
检查内容中是否有违法词语,很通用,缺点:需要维护者参与
⑥. 添加留言状态。 [要求严格的情况下]
为留言表加一个状态,管理员手工进行审核如不符合要求删之,
缺点,需要维护者参于,不如使用词语过滤表方法,减少维护成本
⑦. 会员机制
仿客禁止留言[只有会员可以留言]
⑧. 动态验证码机制
看看QQ空间的验证码: 当鼠标点击验证码输入框时才会弹出验证码图片!
[同样用JS做的,同上边激发操作面板标识原理相同]
⑨. 最后一点也是最重要的
数据审核与过滤! 如果没有严格的数据审核与过滤机制,上边做的一切都白废,因为DB里依然会存入垃圾数据
例如,Email地址检测,留言姓名长度,留言内容长度等各种检测,如果这里松了DB里也同样会有N多垃圾数据?
我记得Chinaunix博客留言板[留言内容[text类型]]都没有设限制,我试图在表单里输入几兆的数据未成功。。
如果我用CURL或其他方式提交,有没有可能让这个SQL在入库的时候出错?完全可能。。。之方面论坛做的比较好
以上仅针对留言板说事,例如政府网站的留言板。。。。
阅读(1114) | 评论(0) | 转发(0) |