本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成30年度 春期 基本情報技術者試験問題と解説

問41

SQLインジェクション攻撃による被害を防ぐ方法はどれか。

ア 入力された文字が、データベースへの問合せや操作において、特別な意味をもつ文字として解釈されないようにする。

イ 入力にHTMLタグが含まれていたら、HTMLタグとして解釈されない他の文字列に置き換える。

ウ 入力に上位ディレクトリを指定する文字列 (../) が含まれているときは受け付けない。

エ 入力の全体の長さが制限を越えているときは受け付けない。


正解


解説

ア 正しい。SQLインジェクションは、Webアプリケーションのデータ操作言語の呼出し方に不備がある場合に、攻撃者が悪意をもって構成した文字列を入力することによって、データベースのデータの不正な取得、改ざん及び削除をする攻撃のことである。

イ クロスサイトスクリプティング (Cross Site Scripting = XSS) を防ぐ方法である。クロスサイトスクリプティングは、Webアプリケーションにスクリプトを埋め込むことが可能な脆弱性がある場合、その脆弱性を悪用して不正なスクリプトを利用者ブラウザ上で実行する攻撃である。

ウ ディレクトリ・トラバーサル攻撃を防ぐ方法である。ディレクトリ・トラバーサルは、ウェブサイトのページを指定するパスに../ などの細工を行うことで、本来アクセスを禁止しているディレクトリやファイルにアクセスすることである。

エ バッファオーバーフロー攻撃を防ぐ方法である。バッファオーバーフロー (BOF) 攻撃は、Webアプリケーションのメモリ操作に脆弱性がある場合、メモリ領域を越えてメモリを上書し、悪意のあるコードを実行させてプログラムを誤動作させる攻撃である。

問40 目次 問42