説明
認証トークンやセッションIDを含むCookieにHttpOnlyがないと、ブラウザーのJavaScriptから値を読めます。XSSが発生した場合、攻撃者がCookieを盗み、利用者になりすます可能性があります。
想定される影響
- セッションの乗っ取り
- 認証トークンの漏えい
- XSSと組み合わせたアカウントへのアクセス
対処方法
- 機密Cookieに
HttpOnly=trueを設定してください。 Secure=trueと適切なSameSiteも設定してください。- Cookie生成を共通化し、これらの属性を既定で適用してください。
例
変更前
java
Cookie cookie = new Cookie("sid", token);
response.addCookie(cookie);
変更後
java
Cookie cookie = new Cookie("sid", token);
cookie.setHttpOnly(true);
cookie.setSecure(true);
response.addCookie(cookie);
変更前はHttpOnlyがないため、ブラウザーのスクリプトが機密Cookieを読めます。変更後はHttpOnly=trueを明示し、暗号化した接続での送信も要求します。