Php 使用曲奇饼

Php 使用曲奇饼,php,cookies,curl,Php,Cookies,Curl,我正在使用cURL远程登录一个网站,一切正常。我正在发布登录信息,检索cookies并被远程站点重定向。我有一些关于cookies实际运行情况的问题 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://website' ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_POST, TRUE);

我正在使用cURL远程登录一个网站,一切正常。我正在发布登录信息,检索cookies并被远程站点重定向。我有一些关于cookies实际运行情况的问题

    $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.)如果多个用户定期使用此脚本,那么是什么阻止了cookies.txt中的正确cookie信息被写入此文件的其他cookie混淆,这些cookie.txt使用
curlopt_cookiefile
发送回服务器?处理过期的Cookie并从此文件中删除旧Cookie的最佳方法是什么

这显然是旋度的一个非常重要的函数,但我似乎在任何地方都找不到这些答案。我希望卷发大师能一劳永逸地解决这些问题。

1)不

2)
2.0)它正在写入/php,也就是说,在根文件系统之外的php文件夹中。你查过了吗
2.1)cookiejar将仅用于不发布登录信息的后续请求。在这一点上,我想知道你用cookiejar做什么…你确定你需要这些饼干吗?它们(不应该)被发送到您重定向到的第三方站点,那么它们在做什么呢?
2.2)运行PHP的用户(通常是web服务器)将需要对此文件的写入权限

3) 只要您将cookiejar放在文件系统中其他人无法任意访问的某个位置,您就可以了——例如,您可能希望将它放在webroot之外的某个位置


4) 如果这个脚本经常被多个用户使用,您几乎肯定会在该文件中混合使用所有不同类型的数据-这表明您可能应该为每个用户提供自己的cookiejar文件,或者其他什么…因为位置只是通过PHP字符串设置的,你不应该有太多的麻烦去弄清楚如何使它充满活力。CURL将负责在后续请求和响应期间不将过期的cookie写入jar。

2.0-我在那里进行了检查,但没有写入任何文件。我认为这是因为该文件夹没有完全写入权限。允许书写的最安全方式是什么?我读了很多关于CHMOD 777不是一个好主意的东西..2.1-只有当远程站点的cookies在标题中时,登录才会重定向到正确的页面,否则它会让我注销。2.2-您能告诉我如何在不授予文件夹777权限的情况下允许对服务器的写入权限吗?这是我需要通过root访问来完成的吗?3-我可以使用这样的路径吗?//文件夹\u out\u of \u webroot/4-是说cookies.txt文件将在cookies过期时自动删除吗?授予curl将运行的进程写入权限的最不允许的方法是从PHP获取uid/gid(通过phpinfo()),将cookiejar发送给该用户,然后将其设置为0700(即“所有者的所有权利,任何其他人都没有任何权利”).cookies.txt不会被删除-它会在每次请求时重写cookies.txt,只会放入未过期的cookies。我想如果没有未过期的cookies,它将是一个零字节的文件,但我不能立即确定-可能会留下某种填充。您可以在webroot之外指定一个指向“的”的路径“不管你怎么想——PHP都不会介意,你不告诉curl它的位置就会导致它在webroot中突然变得可用。