safariでiframe内でformをsubmitする方法でサードパーティクッキーを使えるようになるのか
はじめに
http://japanese.engadget.com/2012/02/17/google-cookie-safari/
タイトルの内容ですが、以前にたぶんここら辺の記事を見てできるのかなと漠然と思っていたのだが試したことがなかったので試してみた
ためしてみる
メイン側
index.html
<script type="text/javascript" src="//third-party.com/iframe.js"></script>
サードパーティ側
iframe.js
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
var doc = frames[frames.length - 1].document;
doc.open();
doc.write("
<form action='//third-party.com/create_cookie.php' name='form'></form>
<script>document.form.submit();</script>
");
doc.close();
if(!isset($_COOKIE["id"]))
$id = ランダムなIDをセット;
else
$id = $_COOKIE["id"];
setcookie("id", $id, time() + 60 * 60 * 24 * 365 * 10, "/");
var_dump($_COOKIE);
上記のようなスクリプトを準備して以下の手順で確認
1. メイン側のindex.htmlへアクセスする
ここで読み込むiframe.jsで自動でsumitしてsubmit先でクッキー生成
2. サードパーティ側のshow_cookie.phpへアクセスしてクッキーがセットされている確認
結果
・ChromeとFirefoxではクッキーがセットされた
・Safariではセットされなかった
やり方がおかしいのか上記の記事がだいぶ前なのでiOS側でセットしないように修正されたのか。
どちらにしろ自分的にはセットできないと判断しました。
以上です