Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么';这是在my.js表单上减缓(或停止)垃圾邮件或bot活动的最佳方法_Php_Javascript_Jquery - Fatal编程技术网

Php 什么';这是在my.js表单上减缓(或停止)垃圾邮件或bot活动的最佳方法

Php 什么';这是在my.js表单上减缓(或停止)垃圾邮件或bot活动的最佳方法,php,javascript,jquery,Php,Javascript,Jquery,这是一个关于(.click)的if语句示例 这是一个包含其他数据的PHP Ajax联系人表单。我最终收到了很多来自例如.ru(俄罗斯)的垃圾邮件,所以在if语句中错误地指出最常见的垃圾邮件是好的,还是只使用captcha更好。如果是这样的话,任何好的参考文献都可以在一个简单的参考文献上看到,并在这种情况下明智地使用。表格在 接受任何想法。最好是服务器端验证(某种验证码)。不要只依赖客户端验证。如果收到大量垃圾邮件,最好的办法就是添加验证码() 如果评论中包含URL或可疑内容,您可以添加一些代码来

这是一个关于(.click)的if语句示例

这是一个包含其他数据的PHP Ajax联系人表单。我最终收到了很多来自例如.ru(俄罗斯)的垃圾邮件,所以在if语句中错误地指出最常见的垃圾邮件是好的,还是只使用captcha更好。如果是这样的话,任何好的参考文献都可以在一个简单的参考文献上看到,并在这种情况下明智地使用。表格在
接受任何想法。

最好是服务器端验证(某种验证码)。不要只依赖客户端验证。

如果收到大量垃圾邮件,最好的办法就是添加验证码()


如果评论中包含URL或可疑内容,您可以添加一些代码来添加验证码。

我认为最好的方法是使用像recaptcha这样的验证码服务。或者只是执行一个简单的随机计算,必须在发布前回答。比如“1+3是什么?”

…还是用验证码比较好。如果是这样的话,任何一个简单的好的参考都是显而易见的,并在这种情况下明智地使用

集成非常简单,使用广泛,支持良好。

我会在表单上添加一个触发器,设置一个隐藏变量以接受表单

<input type='hidden' name='isValid' value='no' />
<script type='text/javascript'>
$('form').mousemove(function(){
    $('input[name=isValid]').val('yes');
})
</script>

$('form').mousemove(函数(){
$('input[name=isValid]')。val('yes');
})

并在服务器端进行检查。

我对这两个选项中的任何一个都有很好的经验:

  • 使用基于会话的令牌,该令牌随表单在页面上生成,然后随表单一起提交,然后在服务器端进行评估。这需要“机器人”利用cookies,并使用两个请求来发布表单。大多数简单的机器人不会这样做

  • 使用onsubmit事件挂钩,在提交时设置实际的表单操作。这样,脚本就无法轻松读取要发布的目标url,而无需处理javascript。例如:

  • 您可以通过将事件附加到单独的js文件中来进一步混淆它,但是对于禁用、删除javascript或页面上的javascript中断的用户,不会有任何回退

    另外:还有一个新的服务叫做keypic.com,也值得研究


    它的工作方式依赖于客户端从第三方服务器(大多数机器人不会)实际获取图像,然后您可以在提交后重新验证图像。如果你愿意,这个系统很容易复制你自己

    的确;javascript可以直接关闭。。。它只是为了让你的网站更具响应性或更具互动性,添加效果等。我在.js进程中使用ajax/PHP,也许我可以在那里嵌入验证码?不确定你所说的.js进程是什么意思,但验证码图像显示在浏览器中,但在服务器上生成和验证。很好,我喜欢这个,在进入新的输入选项之前,我会先尝试一下。@Shane:只有在您同意将使用辅助功能软件的用户以及手机/智能手机/触摸平板电脑用户拒之门外的情况下,才可以这样做。我明白了,我想最终使我的网站更便于移动(这些是未来的问题),所以这可能不是正确的选择?也许“什么是1+1?”是一个更好的临时计划,直到我能打破jishi提到的。将输入焦点与新智能手机和触摸平板电脑的技巧结合起来,我也同意Crowder的观点,这不是一个很好的1+1问题,但“1”是一个图像(机器人倾向于学习数学)这是一个非常有趣的答案,我会睡一觉,早上再看细节。当然,这需要JavaScript。但我认为Shane的页面可能已经需要它了,所以…第一个选项不需要javascript,第二个选项正如我所说的那样。我理解这个想法,但在实现到我的文件之前,我真的需要研究一下,这样我才知道真正发生了什么。今晚完成一个期末考试,然后我将全力以赴。还有一个问题,这个代码的缺点是什么和/或我能影响哪些好客户?再次感谢!第一个选项并没有任何实际的缺点,您只需要依靠会话cookie就可以工作。但是,如果用户愿意,智能机器人可以轻松复制该行为。第二个选项依赖于javascript,但“模糊”了表单的实际目标。如果您使用XHR发布,这可能对您没有任何帮助,因为您可以轻松地在js中设置发布目标,但是如果您的表单上有action=“”,这就是bot所选择的。验证码是非常可靠的,但对客户来说也是非常侵入性的,并且容易引起不安。这将是我最后的选择。reCaptcha的安全性听起来不错,但我想尽量为我的客户获取最少的条目,这样我就不会失去他们的兴趣。至少在我的网站接触有限的客户和低安全性需求时先尝试一下。就像在一个if…%url%或任何语法查找特定文本,然后进入reCaptcha(如果是)?我喜欢这个主意。
    <input type='hidden' name='isValid' value='no' />
    <script type='text/javascript'>
    $('form').mousemove(function(){
        $('input[name=isValid]').val('yes');
    })
    </script>