menu
ホーム > IT用語集 > SQLインジェクション(SQL Injection) | IT用語
UPDATE:

SQLインジェクション(SQL Injection) | IT用語

IT用語辞典

  • SQLインジェクションはセキュリティ上の脆弱性を意図的に利用してデータベースに不正アクセスする攻撃手法

SQLインジェクション【SQL Injection】とは、セキュリティ上の脆弱性を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースから不正に情報を引き出したり、データベースを不正に操作したりする攻撃方法のことです。SQL【エスキューエル:Structured Query Language】は、データベースを操作するために使用されている問い合わせ言語です。

アプリケーションに入力されるデータのフィルタリング(入力のフィルタ)とデータベースに送信されるデータのエスケープ(出力のエスケープ)が適切に行われていない場合に、SQLインジェクションを受けます。入力のフィルタや出力のエスケープは、そのデータが適切な内容で入力・出力されるかをチェックして必要な処置を行うことです。

例えば、SQL文ではハイフンが2つ続くとそこから先はSQLコメントとして扱われますが、これを利用し、パスワードを要求する部分のSQL文を無効化し、パスワードを入力しなくてもログイン出来てしまう場合があります。

SQLクエリを作るために使用されるデータを完全にフィルタし、フィルタされた汚染リスクのないデータを適切にエスケープすることで、SQLインジェクションのリスクはなくなります。

また、日本語などのマルチバイト文字を SHIFT-JIS や EUC-JP で使用する場合、不正なマルチバイト文字によるSQLインジェクションが発生する可能性があるので注意が必要です。SHIFT-JIS文字列 や EUC-JP文字列をそののままデータベースに渡すことは避け、UTF-8などの文字列に変換することでリスクを軽減できます。


タグ(=記事関連ワード)

タグ:

日付

投稿日:2017年8月7日
最終更新日:

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/itglossary-injection/trackback/

page top