【发布时间】:2017-04-05 10:36:42
【问题描述】:
我正在尝试使用 JavaScript 验证验证码。但我找不到任何关于验证码客户端 API 的资源。你有任何文件吗?
【问题讨论】:
标签: javascript captcha
我正在尝试使用 JavaScript 验证验证码。但我找不到任何关于验证码客户端 API 的资源。你有任何文件吗?
【问题讨论】:
标签: javascript captcha
如果您可以通过 JavaScript 验证验证码,这意味着在您传递给客户端的代码中很容易找到有效代码的方法,这将有效地使验证码无效完全用于验证码。
实现此目的的唯一安全方法是将 AJAX 请求发送到服务器,然后服务器将验证代码。这样,您的验证将完全按照您通常在服务器上验证验证码的方式完成。
【讨论】:
使用 javascript 验证验证码意味着您需要在 html 源代码中显示验证码文本的一些表示形式,这对机器人自动可见。
如果您绝对必须使用 javascript 进行验证,我认为一种可能性是对您的验证码文本服务器端进行散列,将其加载到 javascript 变量中,然后使用等效的 javascript 散列函数进行验证。
【讨论】:
使用 JavaScript 验证 CAPTCHA 是个坏主意,因为机器人可以轻松击败 CAPTCHA。如果您的意思是要进行 Ajax 调用以提交稍有不同的输入文本。
【讨论】:
你可以使用它,它的工作原理非常简单
myFunction();
var val=[];
val.push("VQ7W3"); /** push value in this array */
val.push("A1234"); /** To maintain image order here */
val.push("A32BD"); /** if first image 0_capt.jpeg contains value VQ7W3 so push this value into zero(0) index of array */
val.push("LD673");
val.push("PQ78V");
val.push("MX81W");
var x;
/**This below method generate random number from 0-5
* name of image starts with that number will set on
* captcha location
*/
function myFunction() {
x = Math.floor(Math.random() * 6); // here 6 stand for how many images you are using return 0-6 number.
$("#imgCaptchaPlace").html("<img id='abc' src='captcha_images/"+x+"_cpt'/>") ;
}
/**
* This below method will call on change of input fields where user enter
* captcha code value
*/
function chaeckCpatch(id)
{
if($("#"+id).val()==val[x])
{
alert("match");
}
else
{
alert("No match");
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<body>
<!-- below div use to display captcha image -->
<div id="imgCaptchaPlace"></div>
<!-- below textfield where user enter captcha value -->
<input type="text" id="captchaText" onchange="chaeckCpatch(this.id);"/>
<!-- include this JS file -->
<script src="captchByAarif.js" type="text/javascript"></script>
</body>
</html>
您可以在此处下载此示例中使用的验证码图片
https://github.com/aarifa-ds/Captcha-Code
【讨论】:
只是作为概念证明...... 如果您将验证码字符串的 HASH 发送到浏览器。您可以动态散列用户输入的字符串,然后比较两个字符串。
【讨论】: