我有一个将信息发送到数据库表的表单。我用 Javascript 对其进行了检查,但是当 Javascript 关闭时,阻止垃圾邮件发送者使用 PHP 将 http 等输入数据库的最佳方法是什么?
问问题
1824 次
5 回答
6
您可以在表单上实施验证码:
http://en.wikipedia.org/wiki/CAPTCHA
编辑:也肯定会在服务器端验证表单数据并像往常一样检查 html 标签等,但 CAPTCHA 应该有助于防止自动垃圾邮件攻击。
于 2010-03-18T13:19:23.387 回答
3
永远不要相信客户。始终验证服务器端的所有数据。用于表单验证的 JavaScript 可能只是一个附加功能。您可以从基本的 PHP 函数开始检查内容是否包含您不喜欢的某些字符串,例如。“http://”。
if (strpos('http://', $_POST['message']) !== false) { /* 拒绝 */ }
于 2010-03-18T13:23:25.063 回答
2
有两件事需要考虑哪些应该并行实施(也许还有更多)。
- 验证码(如前所述)
- 在服务器端验证您的数据!你写你是通过javascript来做到这一点的。这很好,但同样的验证过程应该用 PHP 编写。
好吧,对于 CAPTCHA,无论如何您都必须在服务器端进行验证。但是即使您决定不实施验证码,您也应该在服务器端进行数据验证。
于 2010-03-18T13:23:00.840 回答
0
我建议htmlentities()
在插入之前使用该功能。
显然,您的插入也应该使用参数化查询来与数据库交互。验证码当然是一种选择,但它更多地用于限制某人可以发布的频率,而不是他们可以发布的内容。使用 hmtl 转义(同样是htmlentities()
函数)来防止用户输入您不想要的内容。
于 2010-03-18T13:46:22.147 回答