php - 如何安全连接以获得安全 cookie
问题描述
我想从具有安全 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);
?>
解决方案
要使用 curl 设置 cookie,请确保您有这两个选项
$cookiefile = dirname(__FILE__)."/cookie.txt" ;
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookiefile);
推荐阅读
- android - DJI android sdk 在启动时崩溃(仅在使用 macOS 构建时)
- java - 布尔值无法与 http get result 一起正常工作
- javascript - Mongoose 更改架构字段类型
- javascript - HTML5 CSS 动画到视频幻灯片
- swiftui - 如何在 SwiftUI 中以编程方式设置 @State 变量
- marklogic - MarkLogic:光学 API 不稳定的耗时/运行时间
- reactjs - 我如何在初始加载本身中获得 Child 的状态?
- powershell - 通过 csv 文件将多个用户添加到 AD 中的多个组
- python - 在一台云服务器上部署多个微服务
- javascript - element.all 无法在量角器测试中拆分数据