我使用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.如果这个脚本被多个用户定期使用,什么会阻止cookie.txt中正确的cookie信息被发回到服务器,使用curlopt_cookiefile
被其他写入的cookie混淆这个文件?处理过期cookie的最佳方法是什么,并从该文件中删除旧的cookie?
这显然是cURL的一个非常重要的功能,但我似乎无法在任何地方找到这些答案。我希望一位cURL大师能够一劳永逸地设置这些问题。
2.0 - 我在那里检查,但没有文件被写入。我认为这是由于该文件夹没有完整的写入权限。什么是允许写作的最安全的方式?我读了很多关于CHMOD 777如何不是一个好主意的信息。 – 2010-11-10 15:36:11
2.1 - 如果远程站点的Cookie位于标题中,登录将只重定向到正确的页面,否则它会将我注销。 2.2 - 你能告诉我如何在不授予文件夹777权限的情况下向服务器写入权限吗?这是我需要通过root访问吗? 3 - 我可以使用这样的路径吗? /../folder_out_of_webroot/ 4 - 这是否说cookies.txt文件会在cookies过期时自动删除? – 2010-11-10 15:39:57
向curl进程授予写入权限的最不宽松的方式是按照原样从PHP(通过phpinfo())获取uid/gid,将cookiejar分配给该用户,然后使其成为0700(即“所有权的所有者,没有任何人有任何权利“)。 – TML 2010-11-10 19:19:06