11日目

今日は夜遅くまで実験であまり進められず。

学習メモ

3-31「より堅牢なセッション管理

  • 安全なセッション管理において重要なことは、
    • セッションの識別子を推測されにくいものにする
    • セッションの識別子を URL のパラメーターにいれない
    • HTTPS 通信で利用する Cookie には secure 属性を設定する
      • Cookie の利用を HTTPS 通信の時のみに限定して通信の経路の盗聴を防ぐ
    • ログインが成功したら新しいセッションの識別子を発行する

3-32「CSRF 脆弱性

  • 認証の状態を持ち続けたりセッションをクッキーの内容で持ち続けるログイン機能を悪用して、外部サイトからリクエストを送り重要な処理を誤って起こさせる脆弱性のこと
  • CSRF 脆弱性への対処方法
    • 一度だけしか利用することができないトークンを投稿フォームに埋め込み、そのトークンを消費する形で投稿をさせる(一般的)
    • 処理を実施する前にさらに ID と パスワードで認証させる(利便性を損ねる可能性あり)
    • リクエストのヘッダの Referer というリクエスト元のページを確認してチェックする(XSSでHTML改ざんされた場合に無防備に)

3-33「Herokuへの安全な公開」

  • Heroku では Node.js のアプリケーションを自動的に HTTP 経由と HTTPS 経由でのアクセスが できるようにしてくれる
  • Basic 認証を利用する際には、パスワードの流失を防ぐために HTTP 通信を禁止する必要がある


3章終わり。長かった。最終章では実践的なサーバーサイドプログラミングについてやるらしい。それが終わったらサイトを2,3個作ってみようと思っている。アイデアはたくさんあるんですよね、実装できるかは分からないけど...。