我正在为网站实施联系表单,我想避免使用验证码,因为我认为它会对用户体验产生负面影响。
相反,我决定试用检测已随邮件提交的网址数量。
我从$ _POST提交中检索消息为字符串。我知道内置的PHP函数,如stristr()可以让我确认消息中存在一个子字符串,但我想要的是计数。
此外,就垃圾邮件检测而言,匹配“< / a>”之类的内容合适吗?
干杯。
答案 0 :(得分:4)
substr_count($ text,“http”) http://www.php.net/manual/en/function.substr-count.php
请注意,这还不够,但两者都不允许用户将未过滤的数据输入到以html格式呈现的表单字段中。
由于Cross Site Scripting http://www.owasp.org/index.php/Top_10_2007-Cross_Site_Scripting
,我无法将javascript放入其中我建议使用http://htmlpurifier.org/删除任何恶意代码。
最后,对于垃圾邮件过滤,我建议http://akismet.com/
祝你好运。答案 1 :(得分:0)
如果这是联系表单,则无需接受html。只编码整个内容并限制来自同一个IP的帖子数量或限制消息之间的时间。
是的,你可以限制网址的数量,但我不认为这是有效的