我正在努力减少我们网站上的表单垃圾邮件。(实际上是最近的)。

我似乎记得在某处读到垃圾邮件发送者没有在网站上执行 Javascript。

真的吗?如果是这样,那么您可以简单地检查 javascript 是否被禁用,然后确定它是 可能 这是垃圾邮件?

有帮助吗?

解决方案

仍然有大量的人在关闭 Javascript 的情况下运行。

另外,我在使用 CSS 阻止垃圾邮件方面取得了相当大的成功。基本上,包括使用 CSS 隐藏的输入字段和标签(display: none;)并提交后,检查该字段中是否输入了任何内容。

我通常将该字段标记为垃圾邮件过滤器,并附有说明 不是 在该字段中放置任何内容,但所有较新的浏览器都会正确隐藏该块。

验证码 实施起来也非常容易。

其他提示

查看 http://kahi.cz/wordpress/ravens-antispam-plugin/ 一个好的答案

如果放入

<noscript><p><label for="websiteurl99f">Please type "e73053": </label><input type="text" name="websiteurl99f" id="websiteurl99f" /></p></noscript>
        <script type="text/javascript">/* <![CDATA[ */ document.write('<div><input type="hidden" name="websiteurl99f" value="e' + '73053" \/><\/div>'); /* ]]> */</script>

所以 javascript 用户看不到任何东西,非 js 用户只需输入一个单词

如果垃圾邮件发送者专门针对您,他们不会花很长时间来编码,但对于垃圾邮件发送者的驱动来说,这应该是好的

同样,添加虚拟字段然后使用 CSS 隐藏它是欺骗机器人的好方法。如果提交了该字段,您就知道可能是非人类完成了该表单。

如果您按照以下方式标记/命名该字段,则特别有效 网址 或者 网站.

您可以检查 - 有 JavaScript 使用特定值填充隐藏表单字段 页面加载。然后,当页面回发到服务器时,检查隐藏表单字段的预期值。如果它不存在,则意味着 JavaScript 未执行。

至于您是否应该假设它是垃圾邮件完全是另一回事,并且确实没有确定的答案。你可以简单地有一个 <noscript> 标签并让它向用户表明,除非他们启用 JavaScript,否则他们的提交将不会被接受。

然而,一旦 JavaScript 运行,垃圾邮件发送者就会使用另一种解决方法。:)

我不记得在哪里见过这种方法,但垃圾邮件机器人喜欢填写表格。您是否考虑过放置一个用 JavaScript 隐藏的表单字段(并表示如果用户没有 JavaScript,则不要填写此字段)。这样,如果此字段填写了某些内容,您可以将其视为垃圾邮件而忽略。

你有这样的运气吗?我认为一些基于文本的浏览器已经实现了基本的 JavaScript 支持,所以也许垃圾邮件机器人也有?

否则,我正在考虑为没有 JavaScript 的用户使用验证码,并为其他用户使用一些自动 JavaScript 检查。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top