如何安全地连接以获得安全的cookie

时间:2019-06-12 07:52:56

标签: php ssl curl https x509

我想连接并从具有安全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);
?>

1 个答案:

答案 0 :(得分:0)

要设置curl的cookie,请确保您有两个选择

$cookiefile = dirname(__FILE__)."/cookie.txt" ; 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookiefile);