安全なWebアプリケーションの作り方について、攻撃と対策の適切な組合せはどれか。
ア | ○ | SQLインジェクション | SQLインジェクション(英: SQL Injection)とは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のことである。 静的プレースホルダでは、SQL を準備する段階で SQL 文の構文が確定し、後から SQL 構文が変化することがないため、パラメータの値がリテラルの外にはみ出す現象が起きません。その結果として、SQL インジェクションの脆弱性が生じない。 |
イ | × | クロスサイトスクリプティング | クロスサイトスクリプティングとは、動的にウェブページを生成するアプリケーションのセキュリティ上の不備を意図的に利用し、狭義にはサイト間を横断して悪意のあるスクリプトを混入させること。 クロスサイトスクリプティングの対策は、いくつかの例外を除き、出力値のエスケープを適切に施すことである。 |
ウ | × | クロスサイトリクエストフォージェリ | クロスサイトリクエストフォージェリとは、Webサイトにスクリプトや自動転送(HTTPリダイレクト)を仕込むことによって、閲覧者に意図せず別のWebサイト上で何らかの操作(掲示板への書き込みなど)を行わせる攻撃手法である。 サーバ側でクロスサイトリクエストフォージェリを防ぐには、サイト外からのリクエストの受信を拒否する必要がある。ヘッダに含まれる情報を元に参照元が正規のページかどうかをチェックしたり、フォームの一部にランダムな数値を隠しておいてアクセスの一貫性をチェックしたり、コンピュータが読み取れないよう画像として表示したチェックコードの入力をユーザに要求するなどの対策が有効である。 |
エ | × | セッションハイジャック | セッションハイジャックとは、ネットワーク上で一対の機器間で交わされる一連の通信(セッション)を途中で乗っ取り、片方になりすましてもう一方から不正にデータを詐取したり操作を行なう攻撃である。 セションIDの値を推測困難なものにしたり暗号化してデータの送受信を行なうなどの対策が有効である。 |