imSecureToken
コンポーネント情報 | |
---|---|
モジュール | im_tenant |
導入されたバージョン | 8.0.0 |
バージョン | 8.0.10 |
機能説明
CSRF対策用のSecureTokenを出力するタグです。
formタグ用にhiddenタグを生成します。
SecureTokenでは、正規の手順を辿っているアクセスに対して実行を許可し、そうではない不正なアクセスをブロックします。
リクエストが正規の手順で実行されているかどうかの判定は、対象のページより前にアクセスする画面でアクセスしたことを示すトークンを発行することで判定します。
トークンを発行する画面を経由しないアクセスは、不正なアクセスと見なして遮断することができます。
具体的には、以下のようなリクエストを遮断することができます。
ただし、mode属性を使用できるのはバージョン 8.0.8 以降です。
バージョン 8.0.8 より前の場合、このタグは使用せずに SecureTokenManager を使用します。
APIの使用方法は、APIドキュメントを参照してください。
設定ファイルについては、設定ファイルリファレンス の「セキュア・トークンフィルタ設定」を参照してください。
http://www.intra-mart.jp/document/library/iap/public/configuration/im_configuration_reference/texts/im_tenant/token-filtering-target-config/index.html
formタグ用にhiddenタグを生成します。
SecureTokenとは?
データを登録するためのURLや、ログイン処理を実行するためのURLに直接アクセスし、不正な処理の要求を防ぐための技術です。SecureTokenでは、正規の手順を辿っているアクセスに対して実行を許可し、そうではない不正なアクセスをブロックします。
リクエストが正規の手順で実行されているかどうかの判定は、対象のページより前にアクセスする画面でアクセスしたことを示すトークンを発行することで判定します。
- サーバは正規のアクセスに対しトークンを発行し、クライアントに送信します。トークンはセッションに保存しておきます。
- クライアントは、サーバから受け取ったトークンをリクエストパラメータに入れて次の画面にアクセスする要求をします。
- サーバはセッションに保存したトークンと、リクエストで送信されたトークンを比較します。トークンが一致すれば、正規なアクセスなのでアクセスを許可します。
- トークンが一致しない、または、トークン自体を送信してこないアクセスは、正規手順ではないアクセスなのでアクセスを許可しません。
トークンを発行する画面を経由しないアクセスは、不正なアクセスと見なして遮断することができます。
具体的には、以下のようなリクエストを遮断することができます。
- ログイン画面を表示していないのに、ログイン処理URLにアクセスされた場合。
- 登録情報入力画面を表示していないのに、登録処理URLにアクセスされた場合。
AjaxでSecureTokenを使いたいときは?
Ajaxでアクセスする先に送信するためのトークンを取得したい場合、mode属性を指定してトークンを生成します。ただし、mode属性を使用できるのはバージョン 8.0.8 以降です。
バージョン 8.0.8 より前の場合、このタグは使用せずに SecureTokenManager を使用します。
APIの使用方法は、APIドキュメントを参照してください。
SecureToken対象ページの設定方法は?
設定ファイルに対象URLを記述する方法と、対象ページの先頭にベリファイ処理を実装する方法があります。設定ファイルについては、設定ファイルリファレンス の「セキュア・トークンフィルタ設定」を参照してください。
http://www.intra-mart.jp/document/library/iap/public/configuration/im_configuration_reference/texts/im_tenant/token-filtering-target-config/index.html
- 原則、設定ファイルにURLを記述することをおすすめします。
- 「対象ページの先頭にベリファイ処理を実装する方法」は、対象URLが動的であるなどの理由で設定ファイルに記述できない場合でも利用可能です。
- セッションタイムアウトなどでセッションが破棄されると、トークンが無効化されます。
属性一覧
注釈 | 属性名 | 型 | 説明 | 省略時の動作 |
---|---|---|---|---|
mode |
String | バージョン 8.0.8 以降で利用可能です。 mode属性に指定した値により、タグが出力する内容が異なります。 “tag”,“name”,“value” のいずれかを指定します。
|
tag | |
Boolean属性 | useOneTimeToken |
String/boolean | このトークンを1回使用した時点で無効化するかを指定します。 | false |
その他 |
String | トークンを生成するシードに含めるキーと値を指定します。 トークンのベリファイ時、リクエストパラメータに同じキーと値が含まれている必要があります。 |
- |