Web 開発再入門 #17 ― セキュリティ処理(CSRF 対策処理)
fmockup
★ 本ページは工事中 ★
はじめに
Web アプリケーションのサーバー・サイドを開発します。
CSRF 対策(緩和策)を施します。
Web サーバーにログインした後、何らかの方法で悪意の Web サイトのニセ更新画面(しかも画面デザインは完全に似せている)に誘導し、そのニセ更新画面から本来の Web サーバーに更新リクエストする手法です。って、うまく説明できないなぁ...。
あらゆる画面で作り込む必要があります。後で CSRF 対策を作り込むのは大変になりますので、初めから作り込んでいくむことをお勧めします。
CSRF:Cross-Site Request Forgery
CSRF 対策のおおざっぱな処理について:
- Web サーバー・サイドは、ランダムな CSRF トークンを生成してクライアント・サイドに返却する。
- クライアント・サイドは、 CSRF トークンを保持しておく。
- クライアント・サイドは、更新リクエストを行うときに、Web サーバーに CSRF トークンを送付する。
- Web サーバー・サイドは、生成した CSRF トークンとクライアント・サイドから送付された CSRF トークンが一致するか否かを検証する。
フォルダー・ファイル構成
D:\
└ Developments\
└ Workspace\
└ fmockup\
├ build\
├ sql\
├ src\
│ └ main\
│ ├ java\
│ │ └ cn\
│ │ └ com\
│ │ └ xxxx\
│ │ └ fmockup\
│ │ ├ action\
│ │ │ ├ xxxx.java
│ │ │ └ SessionTokenAction.java ← コレ
│ │ ├ controller\
│ │ ├ customizer\
│ │ ├ entity\
│ │ ├ mapper\
│ │ ├ response\
│ │ │ ├ xxxx.java
│ │ │ └ TokenResponse.java ← コレ
│ │ ├ service\
│ │ │ ├ xxxx.java
│ │ │ └ yyyy.java
│ │ ├ util\
│ │ │ └ SessionUtil.java
│ │ ├ validator\
│ │ └ validator_order\
│ └ resources\
├ vue-vite\
└ WinSW.NET-nnn\
ファイルの文字コード
基本的に Eclipse でファイルを作成するので、あまり意識したことがありません。
多分、Unix 改行(LF)なのだと思います。
ファイルの作成
- Eclipse で、ファイル “SessionTokenAction.java”、“TokenResponse.java”、 を作成する。
SessionTokenAction.javaTokenResponse.java
ランダムな CSRF トークンを生成してクライアント・サイドに返却します。