Clear Site Data、ブラウザのローカルデータを削除する仕組み

20180724追記
動いた
Clear-Site-Dataヘッダでブラウザに記憶されているデータを消す - ASnoKaze blog


背景

Webサイトは様々な理由で、ユーザのローカルにデータを保存します

  • Cookieといった状態を管理するための情報
  • Cacheといった、Webサイトのパフォーマンスを改善するためのキャッシュデータ
  • DOM Storageといった、様々な用途で保存されるデータ


Webサイトの開発者はそらのデータを扱う上で気をつけなければならないことがあります。

  • データを暗号化する。改竄されてい問題ないようにする
  • 必要がなくなったらデータを消去する


これらのデータを削除することは現在容易ではない場合があります。
Cookieは、HttpOnly属性が付いている場合は、クライアントが持ってるCookieを全て覚えておく必要があります。キャッシュについてはまだ難しい。


これらのデータを削除するために、W3CでClear Site Dataという仕組みの提案がされています。
http://www.w3.org/TR/clear-site-data/

Clear Site Data

Clear-Site-Dataヘッダ

Cler Site Dataでは、新しくClear-Site-DataというHTTPヘッダを定義しています。

Clear-Site-Data: domStorage cookies executionContexts cache; includeSubdomains

typeはそれぞれ、この4っつを個別に指定できます。

  • domStorage
  • cookies
  • executionContexts
  • cache
Clear-Site-Data: *

もしくは * を指定できます。


もちろん、このヘッダは証明書が有効なHTTPS通信でしか使えない。

JavaScript API

JavaScriptでも同様に、ローカルデータを消せるAPI

navigator.storage.clear({
  types: [ "cache" ],
  includeSubdomains: true
});