简单&基本形式垃圾邮件减少:检查Javascript?

时间:2008-09-09 17:09:17

标签: javascript user-input

我正在尝试减少我们网站上的垃圾邮件形式。 (它实际上是最近的。)

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

这是真的吗? 如果是这样,那么你可以简单地检查一下javascript被禁用,然后认为可能它是垃圾邮件吗?

6 个答案:

答案 0 :(得分:8)

仍然有很多人在关闭Javascript的情况下运行。

或者,我在使用CSS停止表单垃圾邮件方面取得了不错的成功。基本上,包括使用CSS(display: none;)隐藏的输入字段和标签,一旦提交,检查是否在字段中输入了任何内容。

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

reCAPTCHA也非常容易实现。

答案 1 :(得分:2)

检查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用户只输入一个单词

如果垃圾邮件发送者专门针对您,那么它将不会花费很长时间来对其进行编码,但是对于垃圾邮件发送者的驱动它应该是好的

答案 2 :(得分:1)

您可以检查 - 在页面加载后,让JavaScript填充具有特定值的隐藏表单字段。然后,当页面回发到服务器时,检查隐藏的表单字段是否为期望值。如果它不存在,那意味着JavaScript没有执行。

至于你是否应该认为它是垃圾邮件是完全另一个故事,而且确实没有确定答案。您可以简单地使用<noscript>标记,并向用户表明他们的提交将不会被采用,除非他们启用JavaScript。

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

答案 3 :(得分:1)

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

如果您将字段标记/命名为网址网站,则会特别有效。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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