php - cURL cookiejar 行用#HttpOnly_ 注释掉了吗?

标签 php curl

我正在尝试使用 cURL 从同一域的不同页面登录 PunBB 论坛。

登录时,cURL 被执行,其初始响应是论坛的“成功登录”页面。然而,当点击该论坛中的任何链接时,没有设置任何 cookie,并且我已注销。

经过一些调查后,我的 cookiejar 文件提到了登录所需的 cookie。如果我在我的浏览器中手动创建此 cookie 及其值,我将成功登录并且一切正常。所以存储的cookie值是正确的。

然而,cookiejar 中包含我的 cookie 名称/值的行被注释掉了。

第一个问题:为什么? 第二:如何防止这种行为?

这是我的 cookies jar :

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

www.example.com FALSE   /   FALSE   0   PHPSESSID   3d7oe6vt3blv3vs3ea94nljcs7
#HttpOnly_www.example.com   FALSE   /   FALSE   1340974408  forum_cookie_e19209 MnwyYWQ4OGViNDI2NjE5MWEwMGZiNGZkNDFmZDY5ZDZhYjM5OTA5NDVjfDEzNDA5NzQ0MDh8OTU0NTExOGZhNWNlNGY5OGMzZDk3MmE0NDlmMWRjNzM3ZjI1NzMxOA%3D%3D

这是我的 curl 调用:

function forumLogin() {
    $loginFields = array('req_username' => $_REQUEST['username']
                        ,'req_password' => $_REQUEST['password']
                        ,'form_sent' => "1"
                    ); //and so on
    $login = getUrl('http://www.example.com/manager/forum/login.php', 'post', $loginFields);
   return $login;
}

function getUrl($url, $method='', $vars='') 
{
  $ch = curl_init();
  if ($method == 'post') {
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
  }
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
  curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
    $buffer = curl_exec($ch);
  curl_close($ch);
  return $buffer;
}

// successful login so reset fail count and update key values
if(isset($_SESSION['mgrValidated'])) {
    $sql = "update $dbase.`".$table_prefix."user_attributes` SET failedlogincount=0, logincount=logincount+1, lastlogin=thislogin, thislogin=".time().", sessionid='$currentsessionid' where internalKey=$internalKey";
    $rs = mysql_query($sql);
    var_dump( forumLogin() );
}
exit;

最佳答案

一行中的#Httponly_ 前缀不是注释。这是一个神奇的字符串,告诉浏览器/客户端有问题的 cookie 是 httponly一。 curl 会理解并相应地处理它。

我不明白有关单击内容的部分,因为我看不出这与您使用 curl 的程序有何关联。

关于php - cURL cookiejar 行用#HttpOnly_ 注释掉了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11261069/

相关文章:

php - 计算 MySQL 数据库中 <a> 链接的点击次数

PHP| pear :MDB2 vs PDO vs Native-PHP (Raw)

javascript - PHP - 文件上传问题(index.php->custom.js->function.php)

php - CURL MULTI - 为什么有两个循环?

curl - 如何通过 HTTPS 测试特定的负载均衡器实例?

php - 仅当数据存在于另一个 PHP 中时如何在表中插入数据

php - 使用 PDO 查询生成 CSV 下载

php - 多个 PHP cUrl 发布到同一页面

java - 如何在java中发送curl请求

php - cURL 已安装,但仍然出现此错误 Elasticsearch-PHP 需要 cURL 或自定义 HTTP 处理程序