0

ドメインA(Cookieの名前を知っています)によって設定されたCookieを、ドメインBからドメインBに配置されたインラインJavaScriptコードを介して読み取ろうとしています。

ドメインBのインラインJavaScriptコード:

<script type="text/javascript">
        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = 'http://domainA.com/classifiead/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();

    </script>

http://domainA.com/classifiead/embed.jsに含まれるもの:

     $("#jsonpbtn2").click(function() {

   var url = 'http://domainA.com/classifiead/content2.php?callback=?'; 
  //  var id = info;
   $.getJSON(url, null, function(data) {
                 $('#textDiv').append(data.somecookie);
     });
});

http://domainA.com/classifiead/content2.phpに含まれるもの:

<?php 
 header('Content-type: application/json');
 header('Access-Control-Allow-Origin: *');
 header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
 header("Access-Control-Allow-Credentials: true");
 header("Access-Control-Allow-Headers: Content-Type, *");
 header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

 $rtnjsonobj->id = 'test skdfbslkdj';
 $rtnjsonobj->somecookie =$_COOKIE['thisweb_last_75'];
echo $_GET['callback']. '('. json_encode($rtnjsonobj) . ')';  

?>

これも可能ですか?

4

1 に答える 1

1

はい、ドメインAにサーバー側のコードを実行している場合。JavaScriptコードがドメインAからCookieを受信すると、ドメインBにCookieを送信できます。

Cookieが安全なCookieまたはhttponlyの場合は、サーバー側のスクリプトを介してのみ読み取ることができます。

これを読むことをお勧めします:http: //en.wikipedia.org/wiki/HTTP_cookie#Cross-site_scripting_.E2.80.93_cookie_theft

注意してください:あなたの例では、プロパティを割り当てる前にオブジェクトを作成する必要があります。例えば:

$rtnjsonobj = new stdClass();
$rtnjsonobj->id = 'test skdfbslkdj';
$rtnjsonobj->somecookie =$_COOKIE['thisweb_last_75'];
于 2012-12-11T09:32:38.047 に答える