减少垃圾邮件的简单和基本形式:检查Javascript吗?
我正在努力减少我们网站上的垃圾邮件形式。 (实际上是最近的)。
我似乎记得在某处读过垃圾邮件发送者没有在网站上执行Javascript的消息。
真的吗?
如果是这样,那么我们可以简单地检查一下是否禁用了javascript,然后确定它可能是垃圾邮件吗?
解决方案
回答
我不记得在哪里看到过这种方法,但是垃圾邮件机器人喜欢填写表格。我们是否考虑过放置一个用javascript隐藏的表单字段(并说如果用户没有JavaScript,则不要填写此字段)。这样,如果某些内容填写在此字段中,则可以将其视为垃圾邮件。
回答
我们可以检查是否有JavaScript在页面加载后用特定值填充隐藏的表单字段。然后,当页面回发到服务器时,检查隐藏表单字段是否为期望值。如果不存在,则表示JavaScript没有执行。
至于我们是否应该假设它是垃圾邮件,则完全是另外一回事了,确实没有一个答案。我们可以简单地使用一个<noscript>标签,并向用户指示除非他们启用JavaScript,否则他们的提交将不会进行。
但是,一旦运行了JavaScript,垃圾邮件发送者将仅使用另一种解决方法。 :)
回答
仍然有很多人在关闭Javascript的情况下运行。
另外,我在使用CSS停止垃圾邮件方面也取得了不错的成绩。基本上,包括一个输入字段和一个使用CSS隐藏的标签(" display:none;"),提交后,检查是否在该字段中输入了任何内容。
我通常将该字段标记为垃圾邮件过滤器,并带有一条指令,禁止在该字段中放置任何内容,但是所有较新的浏览器都会正确隐藏该块。
- 更多:使用CSS与垃圾邮件作斗争
reCAPTCHA也非常容易实现。
回答
同样,添加一个虚拟字段,然后使用CSS隐藏它是欺骗机器人的好方法。如果提交了该字段,则说明我们可能是一个非人工填写的表格。
如果我们沿URL或者网站的行标记/命名字段,则特别有效。
回答
检查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用户只需输入一个单词
如果垃圾邮件发送者专门针对我们,则无需花费很多时间对其进行编码,但是对于垃圾邮件发送者来说,这应该是不错的选择
回答
你有运气吗?我认为某些基于文本的浏览器已经实现了基本的JavaScript支持,因此垃圾邮件机器人也可以实现吗?
否则,我会考虑为没有JavaScript的用户使用验证码,并为其他用户提供一些自动JavaScript检查。