我正在尝试做什么: 我有一个脚本,可以使用cURL自动记录用户。用户登录的网站的工作方式是,如果登录尝试比5分钟更频繁,则会引发错误。
但是,我发现该网站正在分配一些cookie变量来决定何时抛出该错误。我想知道我是否可以操纵这个cookie var来欺骗网站,以便它不会抛出错误?
我目前的工作代码:
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL,$login_url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_HEADER, true);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt( $ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: ".$random_ip, "HTTP_X_FORWARDED_FOR: ".$random_ip));
curl_setopt ($ch, CURLOPT_REFERER, $login_url);
curl_setopt ($ch, CURLOPT_USERAGENT,$user_agents[$user_agents[0]]);
curl_setopt ($ch, CURLOPT_POSTFIELDS, "data%5BUser%5D%5Busername%5D=".$login_r['log_username']."&data%5BUser%5D%5Bpassword%5D=".$login_r['log_password'].""
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
上面的代码可以工作......只要我不会在不到5分钟的时间内运行我的脚本。我想每分钟运行一次。我有一个cronjob设置,我在数据库中记录登录的结果。
登录成功后,标题如下所示:
HTTP / 1.1 302发现日期:星期六,23十一月2013 09:33:39 GMT服务器:Apache P3P:CP =“NOI ADM DEV PSAi COM NAV OUR STP IND DEM”到期:周一, 1997年7月26日05:00:00 GMT最后修改日期:2013年11月23日星期六09:33:39 GMT 缓存控制:无存储,无缓存,必须重新验证缓存控制: post-check = 0,pre-check = 0 Pragma:no-cache Set-Cookie: 的CakePHP =删除; expires =星期五,2012年11月23日09:33:38 GMT;路径= / Set-Cookie:CAKEPHP = 1kgh668rhu0sg0dgtj125v31b7;期满=星期三, 2013年12月18日09:33:39 GMT;路径= /;域= * ** * ** * ** 即可。;安全 位置:https:// * ** * ** * ** * 变化:接受编码 Content-Length:0 Content-Type:text / html; charset = UTF-8 HTTP / 1.1 200 OK日期:星期六,2013年11月23日09:33:40 GMT服务器:Apache P3P:CP =“NOI ADM DEV PSAi COM NAV我们的OTRo STP IND DEM“Cache-Control:max-age = 0, no-cache P ragma:no-cache X-Mod-Pagespeed:1.2.24.1-2581不同: Accept-Encoding Content-Length:14582 Content-Type:text / html; 字符集= UTF-8
注意:“位置”行是该网站定义“登录成功”重定向URL的位置。
登录失败时,标题如下所示:
HTTP/1.1 200 OK Date: Sat, 23 Nov 2013 09:36:21 GMT
Server: Apache P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Set-Cookie: CAKEPHP=deleted; expires=Fri, 23-Nov-2012 09:36:21 GMT;
path=/ Set-Cookie: CAKEPHP=8ur5cc9nk145g7up50bk1fpbk4;
expires=Wed, 18-Dec-2013 09:36:22 GMT;
path=/; domain=.***************;
secure X-Mod-Pagespeed: 1.2.24.1-2581
Vary: Accept-Encoding Cache-Control: max-age=0, no-cache
Content-Length: 7120 Content-Type: text/html; charset=utf-8
任何帮助将不胜感激。