1.防远程提交;
远程提交: 用户通过扒网站代码的形式,从远程提交表单,以PHP为示例,如:Action原本指向 formHandler.php,远程提交可修改指向 http://www.yoursite.com/formHandler.php,做他希望的任何修改,点击 Submit,服务器会把这个表单数据作为合法通信流接收。
解决方案:
Referer验证:考虑检查 $_SERVER['HTTP_REFERER']
,从而判断请求是否来自自己的服务器,这种方法可以挡住大多数恶意用户,这种方案可以通过修改Referer头绕开令牌:处理远程表单提交更好的方式是,根据一个惟一的字符串或时间戳生成一个令牌,并将这个令牌放在会话变量和表单中。提交表单之后,检查两个令牌是否匹配。如果不匹配,就知道有人试图从表单的远程副本发送数据。
2.防SQL注入,对特殊代码进行过滤;
SQL注入:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
解决方案:
- 使用正则表达式过滤传入的参数
- 字符串过滤
3.防止注册机灌水,使用验证码;