【发布时间】:2019-06-12 07:52:56
【问题描述】:
我想连接并从具有安全 cookie 的网站获取数据。我需要在下一次请求时设置 cookie 以解决验证码,但我在我的项目或提琴手中看不到 cookie。
同站点、安全、httponly 显示在 set-cookie 响应标头中
如何像浏览器一样模拟这个过程?
浏览器会按照它在 cookie 中看到的内容执行什么操作?
我知道在 cURL 上设置 X509 CA 并尝试它,但我在所有测试中都遇到错误:无法识别对等证书颁发者。
我使用 CURLOPT_CAINFO 根据我的请求设置 CA 我尝试使用不同格式的 CA,例如 cer 、 crt 、 pem 我用 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);
?>
【问题讨论】:
-
开始标签在我看来是错误的。