我想连接并从具有安全cookie的网站获取数据。我需要在下一个解决验证码的请求上设置cookie,但是在项目或提琴手中看不到cookie。
在set-cookie响应标头中仅显示相同站点,安全,httponly
如何像浏览器一样模拟此过程?
浏览器到底能做什么呢?
我知道在cURL上设置X509 CA并尝试使用它,但是在所有测试中都遇到错误:无法识别对等证书颁发者。
我使用CURLOPT_CAINFO根据我的请求设置CA 我尝试使用cer,crt,pem等不同格式的CA,我用openssl更改了它
<؟php
$headers = array(
'Host: example.com',
'Connection: keep-alive',
'Upgrade-Insecure-Requests: 1',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',
'Accept-Language: en-US,en;q=0.9',
);
$url='https://example.com/';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 30,
CURLOPT_FRESH_CONNECT => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CAINFO => 'Cert/certificate.crt',
CURLOPT_VERBOSE => 1,
CURLOPT_HEADER => 1,
));
$response = curl_exec($curl);
$err = curl_error($curl);
?>
答案 0 :(得分:0)
要设置curl的cookie,请确保您有两个选择
$cookiefile = dirname(__FILE__)."/cookie.txt" ;
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookiefile);