1

我正在为网站实施联系表格,我想避免使用验证码,因为我认为它会对用户体验产生负面影响。

相反,我决定尝试检测与邮件一起提交的 URL 数量。

我从 $_POST 提交中检索消息作为字符串。我知道诸如 stristr() 之类的内置 PHP 函数可以让我确认消息中存在子字符串,但我想要的是计数。

此外,就垃圾邮件检测而言,匹配“</a>”之类的内容是否合适?

干杯。

4

2 回答 2

4

substr_count($text, "http") http://www.php.net/manual/en/function.substr-count.php

请注意,这还不够,但也不允许用户将未经过滤的数据输入到呈现为 html 的表单字段中。

由于跨站点脚本http://www.owasp.org/index.php/Top_10_2007-Cross_Site_Scripting我不应该把javascript放在那里

我建议使用http://htmlpurifier.org/删除任何恶意代码。

最后,对于垃圾邮件过滤,我推荐http://akismet.com/

祝你好运。

于 2009-09-08T15:32:31.840 回答
0

如果这是联系表格,则无需接受 html。只需对整个内容进行编码并限制来自同一 IP 的帖子数量或限制消息之间的时间。

是的,您可以限制网址的数量,但我认为这不是有效的

于 2009-09-08T15:38:54.277 回答