这个针对垃圾邮件的简单概念有效吗?(需要优化?)
Is this simple concept against spam valid? (Optimization required?)
简介
我们在早期的一个项目中处理了一些垃圾邮件问题,并用以下简单的概念防止了任何垃圾邮件机器人。我现在想把它变成一个更大的项目。在我这样做之前,我希望优化它,使其在同一页面上以多种形式工作,但我还没有掌握诀窍,或者我不确定是否值得将其重建为一个更复杂的版本,如果它无用的话。
为了澄清:我不想处理CAPTCHA或类似的事情。只需执行本机解决方案
概念
如果用户关注表单的任何input
字段,则将发送AJAX查询,其中将生成随机哈希标签并将其存储到$_SESSION
变量中。这个散列还将被写入一个名为spamKey
的隐藏输入字段(例如(。
用户提交表单后,我检查$_SESSION["spamKey"]
变量是否等于$_POST["spamKey"]
变量,因此我决定是否处理查询。
代码
简单形式
<form action="index.php" method="post" id="formOne">
<label for='input_eins'>Name</label>
<input type='text' id='input_eins' name='name' />
<label for='input_user'>E-Mail</label>
<input type='text' id='input_user' name='user' />
<label for='ta_text'>Comment</label>
<textarea name='text'></textarea>
<label for='input_spamKey'>spamKey</label>
<input type='text' id='input_spamKey' name='spamKey' />
<input type='submit' value='Senden'>
</form>
script.js(使用jQuery(
var spamKey = false;
$("#formOne > input").focus(function() {
if(spamKey == false) {
dataString = "action=getSpamKey";
$.ajax({
url: 'asyncresponse.php',
data: dataString,
type: "POST",
success: function(data) {
$("#input_spamKey").val(data);
if(data != "") {
spamKey = true;
}
}
});
}
});
asyncresponse.php(信息:POST变量已清理(
if($_POST["action"] == "getSpamKey") {
$spamKey = md5(time().microtime());
$_SESSION["spamKey"] = $spamKey;
echo $spamKey;
}
PHP中的检查例程
($_SESSION["spamKey"] == $_POST["spamKey"] && !empty($_SESSION["spamKey"]))
好的-我的问题是什么
你建议我采取哪些步骤来保护多种形式?可能还有一个基本问题——这是处理垃圾邮件问题的有效解决方案吗?
感谢您提前提供的帮助。
你可以在这里找到一个简单的演示:http://godesign.ch/labor/antispam/index.php
Captcha曾经是防止垃圾邮件的有效方法。它现在被打破了,因为它被广泛实施,创造了打破它的经济激励(谷歌"captcha breaked"(。
我看到这种方法在项目中是有效的。你有可能在某个时候有人会有动机破坏它。正确实施,我相信它在这个时候提供了合理的垃圾邮件防护。
- 如何有效地将游戏数据存储在URL查询字符串中
- 以可优化的方式使用requirejs加载模板
- 如何使用Node.js最有效地解析网页
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 有效形式-始终只显示1个错误[角度]
- Javascript袖珍参考,第121页:这是怎么回事;猴子补丁”;方法应该有效
- 使用优化器在慢速连接上加载main.js时需要js超时
- 单击仅在第二次单击后有效
- JavaScript数组优化以提高性能
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 为什么自我执行匿名有效
- D3.js生成有效的SVG,但不显示任何内容
- 如何在AngularJS中有效地检查日期是否有效
- React+Redux性能优化与组件ShouldUpdate
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- JavaScript优化:如何缓存本地变量'初始值更有效
- 优化代码以只定义一次变量,代码只有在变量处于变更函数中时才有效,对于变更之外的代码,我重新定义
- jQuery优化有效的过滤,然后添加类到多个元素
- 这些是有效的循环优化吗?
- 这个针对垃圾邮件的简单概念有效吗?(需要优化?)