新闻发布
管理系统近,足球外围最靠谱的网站的客户的网站之一,一直在处理大量的恶意僵尸注册其电子邮件时事通讯。有处理BOT交通几个常用的策略:
蜜罐:从用户隐藏表单输入,但可以看到它们的机器人,所以如果他们被填充,足球外围最靠谱的网站就知道它是由一个机器人访问
确认电子邮件:用户会收到一封电子邮件,并通过电子邮件发送的链接,以确认该邮件是有效的
验证码:某种谜/疑问,一个机器人将有麻烦的回答
由于复杂性和机器人的体积,足球外围最靠谱的网站决定为这个网站优雅的解决方案是使用一个验证码系统。但是,什么captcha系统?人机识别系统通常包括显示用户一个字的图像,用户必须键入出来的字。通常情况下,图像的方式,一台计算机将有一个艰难的时间识别它扭曲。
不幸的是,足球外围最靠谱的网站已经得到了一些在那里机器人比在本场比赛人类更加美好的地步,所以足球外围最靠谱的网站转向谷歌的NoCaptcha的reCAPTCHA。
对于大多数用户来说,NoCaptcha验证码很简单,用户可以点击一个复选框。
谷歌的验证码使用IP地址,饼干,和鼠标移动,以确定该用户是一个机器人。还有其他专有的策略,但谷歌有什么动力去释放这些......因为它会破解验证码容易。
如果谷歌不能从眼前的行为告诉足球外围最靠谱的网站,如果一个用户是一个机器人与否,有时用户会需要完成一个简单的匹配测验是这样的:
让足球外围最靠谱的网站把它建成!
先决条件
足球外围最靠谱的网站正在与一个标准工作船现场,并能够通过一个JavaScript模块,前端接口。验证码是很灵活的,所以这只是一种可能的实现。
您还需要注册你的网站与谷歌获得一个站点密钥和私钥。测试地点密钥和秘密密钥可用于开发在这里。
发展
首先,足球外围最靠谱的网站需要显示在HTML中reCAPTCHA小工具:
标记
有相当多的事情怎么回事,让足球外围最靠谱的网站打破它。
第一行是足球外围最靠谱的网站的一个div容器的ReCaptcha部件将在接下来异步从谷歌加载必要的验证码数据的脚本可以看出形式。后,足球外围最靠谱的网站有一个脚本,实际上将呈现reCAPTCHA小工具。足球外围最靠谱的网站选择其中的div小部件插入到'的reCAPTCHA小部件“。足球外围最靠谱的网站还包括了必要的验证码sitekey,定型选项(无论是亮或暗),并且当用户完成验证码将执行回调函数。
现在的ReCaptcha能否正常显示,让足球外围最靠谱的网站构建一个JavaScript模块中的回调函数:
JAVASCRIPT的window.recaptchaCallback = function(recaptchaResponse){ };
该reCAPTCHA小工具呈现之前,此功能必须在初始化,如回调函数必须存在被束缚的ReCaptcha。此外,您还可以看到该函数属于“窗口”到它,所以它可以在全球范围内进行访问。
当回调函数被调用时,它会通过一个变量(recaptchaResponse),这是当用户完成验证码生成的唯一令牌。为了验证此令牌是有效的,足球外围最靠谱的网站需要调用谷歌API来确认。让足球外围最靠谱的网站通过这篇文章要求一个插件控制器:
JAVASCRIPT的window.recaptchaCallback = function(recaptchaResponse){ $.post('/', { action: 'recaptchas/verify', response: recaptchaResponse }, function(data, textStatus, jqXHR) { });};
如果你想知道为什么足球外围最靠谱的网站要发布'/',那是因为足球外围最靠谱的网站的路线是通过操作变量实际传递。这是一个特定的工艺,方法,javascript和一个工艺品插件控制器之间传递信息。现在将在Recaptchas控制器执行actionVerify功能。
里面足球外围最靠谱的网站的插件控制器,足球外围最靠谱的网站做一个简单的post请求,发送了所有必要的信息:
PHPpublic function actionVerify() { $recaptchaResponse = craft()->request->getParam('response'); $secret = 'google_recaptcha_secret_key'; $url = 'https://www.google.com/recaptcha/api/siteverify'; $fields = array('secret' => $secret, 'response' => $recaptchaResponse); $fields_string = http_build_query($fields); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); $json = json_decode($result, true); return $this->returnJson(array('success' => $json['success']));}
这是非常简单的。足球外围最靠谱的网站正在建立一个POST请求谷歌的reCAPTCHA API。足球外围最靠谱的网站有两个参数,足球外围最靠谱的网站网站的密钥和验证码生成的recaptchaResponse。然后到后期的响应将是一个布尔值,如果recaptchaResponse是有效的。现在,让足球外围最靠谱的网站解析响应后面的模块中:
JAVASCRIPT的window.recaptchaCallback = function(recaptchaResponse){ $.post('/', { action: 'recaptchas/verify', response: recaptchaResponse }, function(data, textStatus, jqXHR) { if (data['success']) { _submitEmailToList($form); } });};
如果响应是成功的,现在足球外围最靠谱的网站调用一个函数来提交电子邮件电子报。它也可以是添加的方式来重设验证码是一个好主意,在情况下,用户需要多次提交表单。足球外围最靠谱的网站只需添加一个简单的函数if语句后:
JAVASCRIPT的grecaptcha.reset(recaptcha);
后的想法
谷歌的NoCaptcha的reCAPTCHA是过滤掉讨厌的机器人整齐的工具。我大的挫折就是他们缺乏的ReCaptcha框样式选项。有两种不同的尺寸选项和两个颜色选项。除此之外,有没有办法改变验证码是什么样子。幸运的是,这个盒子是很小的,可与大多数网站的设计希望摇摆。但总体而言,实施是不是太棘手,并在网站上的伟大工程。