Weekly Learning
今週の学びのメモです。
- HSTS について
- Jekyll の build ファイルに VS Code の workspace ファイルが含まれてしまう
HSTS について
HTTP Strict Transport Security(HSTS) は HTTP リクエストをブラウザが HTTPS に変更する仕組み。
HTTP レスポンスヘッダーで Strict-Transport-Security
を以下のように設定すると次回からは HTTPS でアクセスするようになる。
そしてこれは max-age
で指定した秒数の間キャッシュされる。
Strict-Transport-Security: max-age=31536000
しかし HTTPS でアクセスするのは完璧ではなくて、次のようなケースでは HTTP アクセスを防げません。
- 本当の初回のアクセス
- ブラウザ を再インストールした後
- 別のブラウザに切り替えたとき
- キャッシュを消したとき
- キャッシュの期限が切れたとき
・・・
完璧にしようと思うと HSTS preload という仕組みがある。
Google が管理している “HSTS preload list” があり、ここに登録するとブラウザにハードコードされる。
ハードコードされているドメインへは自動的に HTTPS でアクセスするようになる。
一旦登録するとハードコードされて取り消しできないので注意。
申請して、ブラウザの将来のバージョンで削除はできるよう。
当の HSTS preload list の登録ページでは HSTS 自体は推奨しているが、preload の登録は推奨していないようです。
HSTS Preload List Submission
Many browsers (Chrome, Safari) will automatically upgrade all HTTP navigations to HTTPS, regardless of the domain’s HSTS policy. HSTS preloading only provides value when these upgrades fail in the presence of an active attacker. The benefits provided by HSTS preloading are minimal compared to the benefits provided by HSTS. While HSTS is recommended, HSTS preloading is not recommended.
上記引用の最初の方に書いてある通り、実は Chrome や Safari では自動的に HTTP を HTTPS にアップグレードする仕組みが備わっている。
なので、HSTS preload list の登録の意義はあまりないようです。
HTTP Strict Transport Security (HSTS) and NGINX – NGINX Community Blog
Chromium Blog: Towards HTTPS by default
Jekyll の build ファイルに VS Code の workspace ファイルが含まれてしまう
Jekyll でビルドすると _site フォルダにビルド結果が作成されます。
何もしないとここに VS Code の .code-workspace ファイルも含まれてしまいます。
含まれないようにするには、_config.yml
ファイルに以下のように exclude
を追加すればよいです。
exclude:
- your-workspace.code-workspace
ここで、ファイル名の指定には *.code-workspace
のようなワイルドカード * は使えません。
ファイル名を全部書く必要があります。