使用带有cURL的Cookie

时间:2010-11-08 17:35:17

标签: php cookies curl

我使用cURL远程登录到网站,一切正常。我发布登录信息,检索cookie并被远程站点重定向。我有几个关于cookie实际运作的问题。

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://website' );
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str);
    curl_setopt($ch, CURLOPT_COOKIEJAR, '/php/cookies.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/php/cookies.txt');
    $result = curl_exec($ch);
    $x = curl_getinfo($ch);
    print_r($x);

1。)通过POST发送登录信息是否需要关注一些安全问题?

2。)当我将curlopt_cookiejar设置为/php/cookies.txt时,我实际上并没有看到该文件保存在任何地方。这可能是由于权限,但登录仍然有效。那为什么会这样?允许将此文件写入并保存的正确权限是什么?

3。)将cookiejar文件存储在纯文本中是否安全?保存此文件的最佳位置是什么?

4.。)如果多个用户经常使用此脚本,那么阻止使用curlopt_cookiefile发送回服务器的cookies.txt中的正确cookie信息被其他Cookie混淆的原因是什么写在这个档案里?处理过期的cookie以及从此文件中删除旧cookie的最佳方法是什么?

这显然是cURL非常重要的功能,但我似乎无法在任何地方找到这些答案。我希望cURL大师可以一劳永逸地设置这些问题。

1 个答案:

答案 0 :(得分:1)

1)否

2)
2.0)它正在写入/ php - 即根文件系统,在php文件夹中。你在那里检查了吗?
2.1)cookiejar仅用于不发布登录信息的后续请求。在这一点上,我想知道你在使用cookiejar是什么...你确定你甚至需要这些饼干吗?他们(不应该)被发送到你被重定向到的第三方网站,那么他们在做什么呢? 2.2)运行PHP的用户(通常是Web服务器)需要对该文件具有写权限。

3)只要你将cookiejar放在文件系统的某个地方,其他人无法获得任意访问权限,你应该没问题 - 例如,你可能想把它放在webroot之外的某个地方。

4)如果多个用户经常使用此脚本,您几乎可以在该文件中混合使用所有不同类型的数据 - 这表明您应该为每个用户提供他们自己的cookiejar文件,或者某些东西...因为该位置只是通过PHP字符串设置,所以你不应该在确定如何使其动态化时遇到太多麻烦。 CURL将负责在后续请求和响应期间不将过期的cookie写入jar。