如何创建简单的javascript / jquery客户端validation码?
如何创建简单的javascript / jquery客户端validation码?
你为什么不用reCAPTCHA ? 它是免费的,非常有效的,并提供可访问性function。
这个给你 ;)
TestPage hi
Please type what you see:
它可以使用HTML和简单的JavaScript代码完成。 看看这个:
function Captcha(){ var alpha = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', '0','1','2','3','4','5','6','7','8','9'); var i; for (i=0;i<6;i++){ var a = alpha[Math.floor(Math.random() * alpha.length)]; var b = alpha[Math.floor(Math.random() * alpha.length)]; var c = alpha[Math.floor(Math.random() * alpha.length)]; var d = alpha[Math.floor(Math.random() * alpha.length)]; var e = alpha[Math.floor(Math.random() * alpha.length)]; var f = alpha[Math.floor(Math.random() * alpha.length)]; var g = alpha[Math.floor(Math.random() * alpha.length)]; } var code = a + ' ' + b + ' ' + ' ' + c + ' ' + d + ' ' + e + ' '+ f + ' ' + g; document.getElementById("mainCaptcha").innerHTML = code document.getElementById("mainCaptcha").value = code } function ValidCaptcha(){ var string1 = removeSpaces(document.getElementById('mainCaptcha').value); var string2 = removeSpaces(document.getElementById('txtInput').value); if (string1 == string2){ return true; }else{ return false; } } function removeSpaces(string){ return string.split(' ').join(''); }
.capt{ background-color:grey; width: 300px; height:100px; } #mainCaptcha{ position: relative; left : 60px; top: 5px; } #refresh{ position:relative; left:230px; width:30px; height:30px; bottom:45px; background-image: url(rpt.jpg); } #txtInput, #Button1{ position: relative; left:40px; bottom: 40px; }
客户端validation码不提供服务器生成的validation码的保护,因为服务器无法检查解析的validation码是否正确解决。
这是不可能的。
您可以创建看起来像CAPTCHA的东西,但它只会在不需要时运行,即在浏览器中显示页面时。 当它需要时它将无法运行,因为试图闯入的程序将不会运行客户端脚本。
如果您的目的是简单地转移大多数机器人,您可以使用一个简单的脚本来随意选择2个数字,并要求用户添加它们。
我同意客户端validation码存在根本缺陷的所有评论,而且我不知道在减少任何数量的垃圾邮件方面必须遇到困难……
不过,要了解您遇到的问题,请查看xRumer和GSA: YouTube:xEvil vs GSA Captcha Breaker
该软件还能够收集和破译人工智能,例如论坛在注册时经常使用的安全问题(即2 + 2?)。 自从最新版本的XRumer以来,该软件能够从多个来源收集这些安全问题,并且在击败它们方面更有效。
wikipedia.org/wiki/XRumer
参考文献:
- 垃圾邮件如何工作? – 网站管理员堆栈交换(2010年!)
- BotDetect:纯JavaScript CAPTCHAvalidation问题
所以,除了警告之外,这里有一个使用HTML5validation的简单替代方案,这可能与其他post一样无效! 据推测,spambots只会在提交之前添加formnovalidate
,并会识别蜜jar字段。
请试试这个
在ajaxaction.php中,请输入以下代码
$(document).ready(function() { DrawCaptcha(); }); function refreshCap() { DrawCaptcha(); } function DrawCaptcha() { var a = Math.ceil(Math.random() * 10) + ''; var b = Math.ceil(Math.random() * 10) + ''; var c = Math.ceil(Math.random() * 10) + ''; var d = Math.ceil(Math.random() * 10) + ''; var e = Math.ceil(Math.random() * 10) + ''; var f = Math.ceil(Math.random() * 10) + ''; var g = Math.ceil(Math.random() * 10) + ''; var code = a + ' ' + b + ' ' + ' ' + c + ' ' + d + ' ' + e + ' ' + f + ' ' + g; var test = document.getElementById("ContentPlaceHolder1_txtCapcha").value = code; alert(test); } function ValidCaptcha() { var str1 = removeSpaces(document.getElementById('ContentPlaceHolder1_txtCapcha').value); var str2 = removeSpaces(document.getElementById('ContentPlaceHolder1_txtinputCapcha').value); if (str1 != str2) { alert("Properly enter the Security code."); document.getElementById('ContentPlaceHolder1_txtinputCapcha').focus() return false; } } function removeSpaces(string) { return string.split(' ').join(''); }