おすすめ 格安 レンタルサーバー 比較 星の数ほどあるレンタルサーバーから自分のサーバーを見つけよう!

SQLインジェクション(SQL Injection)

SQLインジェクション(SQL Injection)

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

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

アプリケーションに入力されるデータのフィルタリング(入力のフィルタ)とデータベースに送信されるデータのエスケープ(出力のエスケープ)が適切に行われていない場合に、SQLインジェクションを受けます。

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

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

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

コメントを残す

サブコンテンツ

最近のコメント

    このページの先頭へ