サブドメインにおけるHTML5ローカルストレージのサイズ制限について
HTML5ローカルストレージのサイズ制限とは
HTML5のlocalStorageデータベースにはサイズ制限が設けられています。標準的な制限値はドメインごとに5MBまたは10MBとされており、仕様上はオリジン(スキーム+ホスト+ポート)ごとに5MBが推奨されています。
これはブラウザごとに多少差があるものの、多くの主要ブラウザがこの目安に従って実装しています。
サブドメインを利用した制限回避への対策
単純にドメイン単位で制限を設けると、同一運営者が複数のサブドメインを利用してストレージ容量を実質的に無限に確保できてしまいます。これを防ぐため、HTML5の仕様では次のように定められています。
ユーザーエージェントは、サイトが同一オリジンの系列サイトを利用して
データを保存し、メインドメインのストレージ制限を回避することを
防止すべきである。
例:a1.example.com、a2.example.com、a3.example.comなどに
それぞれ上限いっぱいまでデータを保存し、
example.com本体の制限を迂回するような行為。
つまり、各サブドメインが独立したオリジンとして扱われる一方で、ユーザーエージェント(ブラウザ)側には、こうした意図的な容量分散を検出・防御することが求められているのです。
推奨される具体的なサイズ制限
サイズ制限については、仕様の中で以下のように言及されています。
オリジンあたり5MBという、おおむね恣意的な制限値が提案されている。
実装からのフィードバックが歓迎されており、
今後この提案の更新に活用される予定である。
この「5MB」という数値は厳密な技術的根拠に基づくものではなく、あくまでも暫定的な目安です。実際の実装状況やフィードバックをもとに、将来的に見直しが行われる可能性があります。
まとめ
- HTML5のlocalStorageにはオリジンごとのサイズ制限が存在し、標準的には5MBが推奨されている
- サブドメインを悪用したストレージ制限の回避は、ユーザーエージェントによって防御されるべきとされている
- 5MBという制限値は暫定的なものであり、実装フィードバックにより将来的に更新される可能性がある
-
HTMLのfor属性とは?label要素との紐付け方法を実例で解説
HTMLのfor属性は、<label>要素を、for属性の値と同じidを持つ最初のラベル付け可能な要素(labelable要素)に結び付けるための属性です。ラベルとフォーム部品を関連付けることで、ユーザーがラベルをクリックした際に該当する入力欄へフォーカスが移動するなど、操作性やアクセシビリティが向上します。構文for属性の構文は以下のとおりです。1. for属性の値を取得する場合labelObject.htmlFor2. for属性の値を設定する場合labelObject.htmlFor = 対象要素のidJavaScriptからは<label>要素の htmlFor
-
HTMLのsize属性とは?使い方とサンプルコードをわかりやすく解説
HTMLのsize属性は、select要素やinput要素において、画面に表示される選択肢の数(または入力欄の文字数)を指定するための属性です。この属性を使うことで、ドロップダウンリストを複数行表示のリストボックスに変更したり、テキスト入力欄の横幅を調整したりすることができます。 size属性の構文 size属性の基本的な記述方法は以下のとおりです。 <tagname size="数値"></tagname> size属性には、表示したい選択肢の数や文字数を整数で指定します。 HTML size属性の使用例 それでは、実際にsize属性を使用した具体