本文目录一览:
- 1、PHP中模拟登录的验证码问题应该如何解决
- 2、php curl 模拟登陆的问题?验证码怎么破?
- 3、为什么PHP写的验证码会被暴力破解,如何能做到不被暴力破解呢?还有验证码一定要依赖COOKIE和SESSION吗?
PHP中模拟登录的验证码问题应该如何解决
基本思路:
首先获取一个cookies值,再带着这个cookies去获取验证码图片,你再带着验证码值和登录数据去模拟post登录。下面是一个模拟获取验证码的。
这里忽略获取cookies的过程。注意文件为UTF-8无BOM格式
?php
header('Content-Type:image/png');
$url = "";//图片链接
$ch = curl_init();
//Cookie:PHPSESSID=121b1127dcded8702c6a1e702c40eca4
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_COOKIE,'PHPSESSID=121b1127dcded8702c6a1e702c40eca4');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT,0);//忽略超时
curl_setopt($ch, CURLOPT_NOBODY, false);
$str = curl_exec($ch);
curl_close($ch);
php curl 模拟登陆的问题?验证码怎么破?
网络技术飞速发展,红黑较量也是日新月异,我们要想取得长久的胜利,就不能得过且过,想绕过一切验证码,是不可能实现的。
建议:
用curl模拟登陆页面获取验证码图片,手工录入
当然了,如果后台是你自己的就不要验证码就OK了,但这是个 个例,不是泛指,希望能帮到你。
为什么PHP写的验证码会被暴力破解,如何能做到不被暴力破解呢?还有验证码一定要依赖COOKIE和SESSION吗?
验证码这个东西本身就是一个防止暴力破解的机制,用于区分机器和人的,跟用什么写的是没有关系的。你可以设置以下逻辑来防止验证码被破解:
验证码更新机制,错误输入后换一个验证码
IP封锁机制,错误输入五次验证码后锁死相关IP