我在这里寻找灵感.我需要对我的网站进行某种人工验证,但是现在最常见的方法(要求用户输入他们在图像中看到的字母和数字到文本输入框中)似乎有点垃圾 - 我觉得有时很难弄清楚字母和数字是什么.
肯定有更好的办法!
我有一些想法,最好的一个似乎是向用户展示一系列图像(4-6),并要求他们根据图像的内容回答问题,例如:
(显示一些几何形状)"哪个图像有3个边?"
要么
(显示动物的图片)"哪种动物可以飞?"
这样做的好处是易于编程,并且希望很容易通过.
任何人都可以想到解决这个问题的其他方法吗?或者可能在上面列出的系统中发现缺陷?是否有可能使这样的系统更容易让人类通过,并且机器人更难通过?
GMail可以用作SMTP服务器.我编写了代码来完成它.但是众所周知,GMail可能偶尔会使用验证码验证(图像验证,因为他们称之为).同样的事情可能是拒绝SMTP身份验证的原因.
正如我所看到的那样,当您尝试从某台计算机首次登录时,谷歌会显示图像验证.从同一台计算机(到同一帐户)的所有连续登录都使用常规登录.我有点害怕这个验证码也可能因为我无法控制的其他原因而再次出现.
所以.是否有可能在需要特殊措施时进行身份验证?如何?
我还要提到通过Web浏览器从计算机登录还可以启用编程SMTP身份验证.
我经营一个游戏网站,所以我有很多用户登录,他们可以每两分钟做一次.
我有一个CAPTCHA系统,有些东西它总是要求代码,而对于其他东西,它会每10分钟询问一次.
我让一些玩家在Opera上使用自动提交功能,而我的CAPTCHA系统确实阻止了他们.
我的问题是,如何最小化我要求代码的次数,但仍然阻止人们使用此自动提交?
我们正在尝试构建一个jmeter测试用例,它执行以下操作:
我们面临的问题是因为在登录系统时存在验证码.我们计划做的是下载验证码链接和显示,并等待用户输入值.一旦完成,一切都像往常一样.
我们找不到任何可以做同样的插件?除了编写我们自己的插件,这里有什么选择吗?
我有一个网站,我正在为用户提供电子邮件加密,我正在试图弄清楚是否有办法检测用户是人还是机器人.我一直在挖掘PHP中的$ _SESSION,但它很容易绕过,我对captcha,useragent或登录解决方案也不感兴趣,对我需要什么的想法?
在SO中还有其他与此非常相似的问题,但我找不到任何直接答案......
非常欢迎任何帮助,谢谢大家!
我需要在我的网站上添加验证码但由于某种原因我收到此错误(来自日志文件):
Warning: imagettfbbox(): Could not find/open font in /home/eric/www/captcha.php on line 24
Warning: imagettftext(): Could not find/open font in /home/eric/www/captcha.php on line 27
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
function generate($width,$height,$characters='6') {
$code = '';
$availableChar = '23456789bcdfghjkmnpqrstvwxyz';
$i = 0;
while ($i < $characters) {
$code .= substr($availableChar, mt_rand(0, strlen($availableChar)-1), 1);
$i++;
}
$image = imagecreate($width, $height);
$text = imagecolorallocate($image, 20, 40, 100);
$things = imagecolorallocate($image, 100, 120, 180);
for( $i=0; $i<($width*$height)/3; $i++ ) {
imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $things);
}
for( $i=0; …Run Code Online (Sandbox Code Playgroud) 我的意思是,如果我检查第一个客户端输入,并且它是正常的,相同输入的第二次检查总是假的...为什么?
我真的需要能够检查两次(一个用于客户端验证,第二个用于服务器端验证)
提前致谢!!!
编辑
澄清:
如果用户输入正常并且recaptcha返回true(我通过ajax到我的服务器向recaptcha的服务器发送请求)表单正在提交并通过POST发送2个变量:recaptcha_challenge_field值和recaptcha_response_field值(已经检查过)和我的服务器要求recaptcha的服务器再次检查这两个值来进行服务器端验证.
Jquery代码:
$("#form_id").find("button").click(function(){
var c = $("#recaptcha_challenge_field").val(),
r = $("#recaptcha_response_field").val();
$.ajax({
url: "/ajax/captcha?challenge=" + c + "&response=" + r,
dataType: "json",
success: function(data){
if(data['is_valid']){
$.ajax({
url: "/ajax/captcha?challenge=" + c + "&response=" + r,
dataType: "json",
success: function(data){
if(data['is_valid']){
alert('OK');
}else{
alert('FAILED');
}
}
});
}else{
Recaptcha.reload();
}
}
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
因此,正如您所看到的,有两个绝对相同的操作具有不同的结果(仅警报FAILED).
我正在开发一个Mac OS X应用程序,它具有从CAPTCHA图像读取/提取文本的概念.我在谷歌搜索并获得了一个名为"DeathByCaptcha"的API,它完全符合我的要求但是这个API不适用于Mac OS X,这个API可用于.Net/C/PHP/Python等.
'DeathByCaptcha'可以在网上找到.我在搜索时发现了这个Stack Overflow的帖子,但这并没有读取CAPTCHA图像,它只是读取一个简单的图像并转换成文本.
请帮我从使用Objective-C的CAPTCHA图像中为Mac OS X应用程序提取文本.
我对图像处理很陌生,我想做的是清除验证码中的噪音;
对于验证码,我有不同类型的验证码:
对于第一个我所做的是:
首先,我将每个不是黑色的像素转换为黑色。然后,我从图像中找到了一种噪声模式并将其删除。对于第一个验证码,很容易清除它,我找到了带有 tesseract 的文本。
但我正在为第二个和第三个寻找解决方案。
这一定是怎样的?我的意思是清除它的可能方法是什么?
这是我删除模式的方式:
def delete(searcher,h2,w2):
h = h2
w = w2
search = searcher
search = search.convert("RGBA")
herear = np.asarray(search)
bigar = np.asarray(imgCropped)
hereary, herearx = herear.shape[:2]
bigary, bigarx = bigar.shape[:2]
stopx = bigarx - herearx + 1
stopy = bigary - hereary + 1
pix = imgCropped.load()
for x in range(0, stopx):
for y in range(0, stopy):
x2 = x + herearx
y2 = y + hereary
pic = bigar[y:y2, x:x2]
test = …Run Code Online (Sandbox Code Playgroud) 我目前使用隐形验证码,如果它认为用户是机器人,它会自动显示验证码。
现在有了 Recaptcha v3,我很难理解它应该如何使用。
它返回一个分数,但是如果分数很低,这可能表明用户是机器人怎么办。然后我应该通过调用一些函数来显示图形验证码吗?或者我应该简单地弹出一个对话框,验证码认为你是一个机器人,仅此而已?
所以我不明白的是:如果用户得分低会发生什么?用户有没有办法继续解决验证码?还是到了路的尽头,就没有办法继续前行了?
是否/可以 recaptcha v3 显示图形验证码来解决?
captcha ×10
php ×3
recaptcha ×2
ajax ×1
gmail ×1
javascript ×1
jmeter ×1
macos ×1
objective-c ×1
ocr ×1
python ×1
session ×1
smtp ×1
tesseract ×1
user-input ×1