情報処理安全確保支援士 平成30年春期 午前U 問17

午前U 問17

SQLインジェクション対策について,Webアプリケーションの実装における対策と,Webアプリケーションの実装以外の対策の組合せとして,ともに適切なものはどれか。
  • [この問題の出題歴]
  • 情報セキュリティ H21秋期 問14
  • 情報セキュリティ H24春期 問16
  • 情報セキュリティ H25秋期 問15
  • 情報セキュリティ H27春期 問17
  • 情報セキュリティ H28秋期 問17

分類

テクノロジ系 » セキュリティ » セキュリティ実装技術

正解

解説

プレースホルダとは、ユーザ入力をもとに生成される部分に特殊文字("?"など)を使用したSQL文中のひな形を用意し、その変数部分には実行時に値を割り当てる仕組みです。後から割り当てる値は、SQL文の特殊文字がエスケープされた完全な数値または文字列として扱われるためセキュアに実行することができます。
またデータベースを扱うWebアプリケーションに必要以上の権限が与えられていると、不正なSQL文が実行されるリスクが増すので、最小権限をもつアカウントで処理させることも重要な対策となります。
//PHPにおけるプレースホルダの一例
$uid = $_POST["userid"];
$sql = 'SELECT * FROM USER WHERE uid = ?' //?がプレースホルダ
$pdo = new PDO($dbh, $user, $password);
$stmt = $pdo->prepare($sql);
$stmt->execute([$uid]); //?に値を割り当てて実行
  • OSコマンドインジェクション対策です。
  • セッションハイジャック対策です。
  • ディレクトリトラバーサル対策です。
  • 正しい。SQLインジェクション対策です。
© 2014-2019 情報処理安全確保支援士ドットコム All Rights Reserved.

Pagetop