XSS(クロスサイトスクリプティング)対策 チェック処理について
XSS対策について調べたところ、@ITさんのXSS脆弱性により起こる被害とその対策に
チェック処理の注意点が書かれていたのでメモ。
①チェック処理はサーバで行う
javaScriptを使用してクライアントでチェックを行う場合
ブラウザでjavaScriptをOFFに設定していた場合は、チェックされずに
不正な値がサーバに渡る。
また、入力フォームを攻撃者が容易していた場合も
サーバでそのまま不正な値が処理されてしまう。
②全てのパラメータのチェックを行う。
ラジオボタンなど、決まった値を選択させる場合に
チェック処理を実装していない場合があるが
攻撃者が容易したサイト(例えば、ラジオボタンの選択項目の箇所が
テキスト入力欄に置き換えられているなど)
にて、不正な値が入力されると、サーバでその値で処理を行ってしまう。
なので、決まった値を選択させる入力欄にも、サーバ側でチェック処理を行う必要がある。
③毎回チェックを行う。
情報を複数ページに渡り入力する場合(例えば、ショッピングサイトなどで
ページごとに順をおって、注文者情報や配送先などを入力する場合
先のページで入力した内容は、一度サーバでチェックした後に
次のページでは、hidden項目に設定してユーザには見えない用に
保持することがあるが、hidden項目のデータは改ざんすることが可能なため
一度、入力チェックしても、データ送信の都度サーバ側でチェック処理を
行う必要がある。
と、チェック処理ではこのような注意点があるようです。
①なんかは、以前どこかで実装した気がするなぁ。。。(汗
さて、今後は注意して実装しなくては。
チェック処理の注意点が書かれていたのでメモ。
①チェック処理はサーバで行う
javaScriptを使用してクライアントでチェックを行う場合
ブラウザでjavaScriptをOFFに設定していた場合は、チェックされずに
不正な値がサーバに渡る。
また、入力フォームを攻撃者が容易していた場合も
サーバでそのまま不正な値が処理されてしまう。
②全てのパラメータのチェックを行う。
ラジオボタンなど、決まった値を選択させる場合に
チェック処理を実装していない場合があるが
攻撃者が容易したサイト(例えば、ラジオボタンの選択項目の箇所が
テキスト入力欄に置き換えられているなど)
にて、不正な値が入力されると、サーバでその値で処理を行ってしまう。
なので、決まった値を選択させる入力欄にも、サーバ側でチェック処理を行う必要がある。
③毎回チェックを行う。
情報を複数ページに渡り入力する場合(例えば、ショッピングサイトなどで
ページごとに順をおって、注文者情報や配送先などを入力する場合
先のページで入力した内容は、一度サーバでチェックした後に
次のページでは、hidden項目に設定してユーザには見えない用に
保持することがあるが、hidden項目のデータは改ざんすることが可能なため
一度、入力チェックしても、データ送信の都度サーバ側でチェック処理を
行う必要がある。
と、チェック処理ではこのような注意点があるようです。
①なんかは、以前どこかで実装した気がするなぁ。。。(汗
さて、今後は注意して実装しなくては。
コメント
コメントを投稿