首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于PHP表单验证的Botsafe Captcha

用于PHP表单验证的Botsafe Captcha
EN

Stack Overflow用户
提问于 2013-06-17 16:54:53
回答 3查看 190关注 0票数 1

这是PHP表单的captcha类型botsafe吗?

代码语言:javascript
运行
复制
<?php 
session_start(); 
$text = rand(10000,99999); 
$_SESSION["vercode"] = $text; 
$height = 25; 
$width = 53; 

$image_p = imagecreate($width, $height); 
$black = imagecolorallocate($image_p, 0, 0, 0); 
$white = imagecolorallocate($image_p, 255, 255, 255); 
$font_size = 50; 

imagestring($image_p, $font_size, 5, 5, $text, $white); 
imagejpeg($image_p, null, 80); 
?>

然后,我让它通过一个IF语句运行,该语句以这种方式连接到一个表单。

代码语言:javascript
运行
复制
$verify = $_POST['verification'];
if ($verify === $_SESSION['vercode'])
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-17 17:01:44

这是

表单的验证码类型吗?

绝对不是。您的代码创建了一个具有黑色背景和白色文本的图像,所有图像的字体和样式都相同。没有任何东西会让机器人难以阅读文本。

要使它防僵尸,你需要扭曲文本,最好是改变颜色。此外,如果您添加一些背景噪声,以防止机器人轻松确定字符,这也会有所帮助。您可以使用像reCaptcha这样已经解决了所有这些问题的东西,而不是麻烦地编写自己的代码。

您的图像示例:

票数 1
EN

Stack Overflow用户

发布于 2013-06-17 17:01:34

很难说它会是机器人安全的。您正在创建一个简单的字符串并将其显示在图片中。

这意味着如果“黑客”使用OCR机制,他们可以很容易地读取图像中的文本。因此,文本本身应该是OCR无法读取的(例如,可以通过在文本中添加模糊、失真或线条来解决)

我认为您应该看看像re-captcha这样的流行的库,以及它们在这里提供的信息:http://www.google.com/recaptcha/learnmore

票数 1
EN

Stack Overflow用户

发布于 2013-06-17 17:03:00

几乎任何定制的验证码都是安全的,因为没有一个机器人制造商花时间来破解它。所以,如果你有几个简单的网站,你用这样的东西是安全的。

如果你计划制作一个插件,或者在一个网站上使用它,在这个网站上,机器人制造商解决验证码问题是有利可图的,那么它就不安全了。因为文本很容易被还原成实际的代码。

但话又说回来,如果你自己为一个简单的网站做了一些东西,你可以更有创造力,做一些用户甚至不知道那里有的东西,因此不会被它惹恼。

可能是在窗体中创建一个文本字段,然后将其放置在视口之外。用户不会填写此字段,但处理表单的机器人将填写此字段。因此,您可以简单地在服务器端检查该字段是否有值。如果有,那它就是一个机器人。

如果你自己做了一些东西的话。不要给它一个像'CAPTCHA‘这样容易理解的名称,而是使用一个可以是实际字段的名称。那么也不会有任何自动尝试绕过它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17143759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档