PHP防止表单被恶意提交的一些思路和办法
程序员文章站
2022-04-22 13:24:37
...
们通常情况下会遇到很多灌水机不断的向站点提交恶意数据,cit.cn也不例外,这个几乎成了一个防止垃圾灌水的课题,那我们有什么好的办法呢?
增加验证码
表单提交时候增加验证码,可以有效防止灌水机提交数据。但是随着图形图像识别程序变的更加强大,验证码识别也不断的在提高他的难度,有些验证码甚至加入了声音的识别,一些小站点可以采用这样的方式。
if($_POST['vcode']!= get_vcode()) { exit('验证码校验失败,无法入库'); }
增加验证问题
和验证码类似,增加一些随即的验证问题,也可以防止恶意提交
增加审核机制
这个比较容易理解,审核后才能够正常显示
select*from article where is_check=1
另外对于一些内容发布,可以考虑使用其他一些审核的方式,比如邮件确认等,只有通过审核的信息才能够正确被显示。
打乱表单名称和表单顺序
尤其是一些开源程序,通常是采用一些简单的名称,例如:title,body等,这些表单很容易被构造,如果打乱表单的名称和顺序,则不会让灌水机那么轻易的提交数据,当然前提是你的程序中要对每个字段的数据进行处理。
禁用关键词/ip/帐号
对于一些恶意的内容信息禁用关键词,让他无法正常提交活着被评比,禁用ip在adsl时代实用性不大,但也算是一种办法,禁用帐号么也算是一种方法了,类似很多社区的禁言功能。
总结
防止屏蔽的方法有许许多多,但是总是有办法被破解的,只要你是开放给别人提交的,总会遭到恶意的提交的,所以这个是无法完全杜绝的只能尽量避免。