参考サイト:
https://blogs.mcafee.jp/sql-injection-prevention
サーバでの対策
入力した文字列にSQL文を仕込まれた場合に、それを命令文と認識してしまうことに問題があるため、SQL文を成立させないエスケープ処理の実装や入力エリアに入力できる文字や文字数などに入力制限を設ける。
ネットワークでの対策
Webアプリケーションファイアウォールの導入など脆弱性を狙った攻撃を検知するソリューションを導入する。
公開されたパッチやアップデートを適用するという対処もありですが、その場合、適用の前に検証が必要になります。
(検証ってどんことするの?ってことが気になる方はこちらのサイトをご覧ください)
WEBの脆弱性対策
外部から擬似的な攻撃を行い、悪用されると危険な脆弱性があるかどうかを確認する脆弱性診断というサービスがあります。
それを利用して脆弱性の有無を定期的にチェックする
各担当者による対策
開発者
SQLインジェクションを引き起こされないようプログラミングする。
どんなことに気を付けてプログラミングすればよいか記載されている、ガイドラインなるものも存在するんだそうな。
・IPA:「安全なウェブサイトの作り方」
・OWASP Top 10:「最も重大なウェブアプリケーションリスクトップ10(PDF)」
・JSSEC:「Androidアプリのセキュア設計・セキュアコーディングガイド」
・経済産業省:「開発者向けセキュリティ関連コンテンツ」
発注・依頼者
仕様書などの脆弱性対策を確認するWebアプリケーションやデータベースなどを発注する側は、依頼書や仕様書に脆弱性対策があることを確認しましょう。