サーバー移転やSSL化でlocalStorageのデータは取得できるのか確認

2018年5月17日WEBコンテンツ制作SSL

サーバー移転でlocalStorageのデータは取得できる

localStorageに保存されたデータはサーバー移転後でも同一ドメインなら取得できました

これは過去のサーバー移転時に確認済みです

SSL(HTTPS)化でlocalStorageのデータは取得できない

過去にlocalStorageでユーザーセッションを管理しているコミュニティツールをSSLにするか考えた時にも一度調べましたが、改めて検証してみました

localStorage-test.html

<html>
<head>
 <title>localStorage Test</title>
</head>
<body>
 <div id="log"></div>
 <script>
if(window.localStorage) {

//////確認する際は外す///////
 localStorage.clear();
 localStorage.setItem('testData','abcdefg');
/////////////////////////////

 testData = localStorage.getItem('testData');
document.getElementById("log").innerHTML += '<p>testData:' + testData + '</p>';
 }
</script>
</body></html>

結果

非SSL(http)でlocalStorageを保存

SSL(https)でlocalStorageを確認

うん、消えてます

正確には消えているのではなくhttpとしてのlocalStorageデータはブラウザに残ってます

逆にhttpsからhttpでも同様に取得不可能でした

httpとhttpsは別ドメインという認識でやはり読み込めないですね

対策

localStorageを利用している場合のSSL化はどうしているのだろう

  • Cookieはhttp・https間で取得出来るので一度Cookieに保存してlocalStorageに渡す
  • サーバー側のデータベースを利用する

ぐらいですかね

ただ、htaccessなどでリダイレクトしてしまうとhttpでのCookie処理が実行されないままHttpsに移動してしまいます

となると少なくとも数か月は自動リダイレクトは入れれなくて、とても常時SSL化とはかけ離れた状態になってしまい逆にURLの分散となりデメリットになりかねませんね

数か月待ったとしても数か月ぶりに訪れた利用者は自分のデータが取得できず困ってしまうでしょう

悩ましい限りです

2018年5月17日WEBコンテンツ制作SSL

Posted by Yousuke.U