通过不同域记录Cookie

时间:2017-04-12 00:30:56

标签: php session cookies

目标:在网站A上发布链接,在网站B上导致php,在网站A上导航cookie。

网站B:

<?php
session_start();
$cookie = $_COOKIE['PHPSESSID'];
file_put_contents("cookie.txt", $cookie . "\n", FILE_APPEND);
?>

目前我只收到了php所在的网站B的cookie。

1 个答案:

答案 0 :(得分:1)

PHP是服务器端。 Cookie设置在客户端。在处理cookie时,有very strict rules个正确的Web浏览器需要遵守。具体来说是section 5.4

  

<强> 5.4。 Cookie标头

     

用户代理必须使用等效于以下的算法      算法计算&#34; cookie-string&#34;来自一家饼干店和一家      请求URI:

     
      
  1. 让cookie-list成为cookie商店中的一组cookie      满足以下所有要求:

         
        
    • 或者:        cookie的host-only-flag是真实的,并且是规范化的        request-host与cookie的域名相同。

           

      或者:cookie的host-only-flag是false并且是规范化的        请求 - 主机域 - 匹配cookie的域。

           
          
      • request-uri的路径路径与Cookie的路径相匹配。

      •   
      • 如果cookie的secure-only-flag为true,则请求 -   uri的计划必须表示&#34; secure&#34;协议(由...定义)   用户代理)。

      •   
      • 如果cookie的http-only-flag为true,则排除   cookie,如果为&#34;非生成cookie字符串   HTTP&#34; API(由用户代理定义)。

      •   
    •   
  2.   

[还有更多标准,但它们与此无关]

这意味着用户代理不会向站点B发送cookie,除非站点B是实际设置该cookie或站点A将该cookie设置为站点B可访问的站点。

简而言之,您无法读取其他网站设置的Cookie,除非他们让您或您正在利用浏览器漏洞(非常顽皮)