如何安全连接以获取安全cookie

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (13)

我想从具有安全cookie的网站连接和获取数据。我需要在解决验证码的下一个请求上设置cookie,但是我无法在我的项目或fiddler中看到cookie。

只需在set-cookie响应标头中显示同一站点,安全,httponly

如何像浏览器一样模拟这个过程?

浏览器完全按照它在cookie中看到的内容做了什么?

我知道在cURL上设置X509 CA并尝试但我在所有测试中都出错:Peer的证书颁发者无法识别。

我使用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);

扫码关注云+社区

领取腾讯云代金券