資格スワイプ
セキュアなシステム開発・品質管理

あるWebアプリケーションの開発チームが、ユーザー入力をそのままSQL文に連結してデータベースに問い合わせる実装をしていたところ、セキュリティレビューでSQLインジェクションの脆弱性が指摘された。この脆弱性に対する修正方法として最も適切なものはどれか。

  • プレースホルダ(バインド機構)を用いたSQL文を実装する
  • Bユーザー入力の文字数を制限する
  • Cデータベースサーバのファイアウォールルールを見直す
  • Dエラーメッセージを日本語化して詳細情報を隠す

解説

SQLインジェクションの根本対策は、SQL文の構造とデータを分離するバインド機構(プレースホルダ)の使用である。文字数制限やエラーメッセージの変更は緩和策にはなり得るが、根本対策にはならない。

根拠IPA「安全なウェブサイトの作り方」SQLインジェクション対策 / シラバス「情報及び情報システムの利用におけるセキュリティ対策の適用」

← 前の問題次の問題 →
スワイプでまとめて流す