このページの本文へ

前へ 1 2 次へ

セキュリティの素朴な疑問を解く 第4回

Q&A形式でセキュリティの基礎を学ぼう

SQLインジェクションやXSSって何されるの?

2009年06月03日 09時00分更新

文● 伊藤玄蕃

  • この記事をはてなブックマークに追加
  • 本文印刷

SQLインジェクションへの対策

 このように、SQLインジェクションが生じるのはアプリケーション側に原因がある。したがって、対策はWebアプリケーションの脆弱性を修正することである。

 理屈の上では「ブラウザから入力された値を適切に処理しないで、SQL文を組み立てる」ことが原因であるから、対策は「入力された値を適切に処理する」ことだ。SQL文で特別な意味を持つ記号文字(上の例では「'」)を素通しさせないといった、いわゆる「エスケープ処理」を行なうことで、意図しないSQL文を生成することを防ぐことができる。SQLではこういった特別な意味を持つ記号文字が複数ある。それらはデータベースエンジンごとに異なるため、それぞれに適した対策が必要である。また、データベースエンジンによっては、安全なSQL文を生成する「バインド機構」や、エスケープ処理を行なうAPIを用意している製品があるのでそれらを活用するとよい。

 現在では、WAF(Webアプリケーションファイアウォール)も注目を浴びている。WAFはその名の通り、Webアプリケーションに対する攻撃を防御する専用のファイアウォールである。これによりWebサーバとクライアントの間に設置することで、アプリケーション層での通信のやり取りを監視し不正なアクセスを遮断できる。

まだあるWebアプリケーションの脆弱性

 SQLインジェクションのようなWebアプリケーションの脆弱性を突く攻撃はほかにもある。情報処理推進機構(IPA)によると、2004年7月から2008年6月末の間に届出があったWebサイトへの攻撃手段の中で、もっとも多かったのが「クロスサイトスクリプティング(XSS:Cross Site Scripting)」である。

 XSSは、掲示板やブログなどユーザーが入力した内容をWebページとして出力するWebアプリケーションを利用する。たとえば、掲示板に悪意のあるスクリプト(JavaScriptなど)を埋め込んだリンクを貼り付け、そのページを閲覧したブラウザにスクリプトを実行させるという攻撃だ。このように、複数のサイトをまたがった攻撃なのでこの名前がついている。埋め込まれるスクリプトの内容には、Cookie情報を送信させてユーザーIDやパスワードなどを盗み出すものや、キーロガーなどのスパイウェアを勝手にダウンロードするものなどがある。この仕組みを使ったフィッシングも現実に存在している(図2)。

図2 XSSを利用したフィッシングの例

まとめ

 クロスサイトスクリプティングもSQLインジェクションと同様に、Webアプリケーションが「ブラウザから入力された値を適切に処理しない」ために生じる攻撃である。したがって、入力された値を適切に処理していれば防ぐことができる攻撃である。データベースを使ったサイトや、掲示板やブログなどのサイトを運営する場合は、これらの脆弱性に注意して安全なサイト構築を心がけよう。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

アクセスランキング

  1. 1位

    TECH

    訓練だとわかっていても「緊張で脇汗をかいた」 LINEヤフー、初のランサムウェア訓練からの学び

  2. 2位

    ビジネス・開発

    最悪のシナリオは「フィジカルAI」による基幹産業の衰退 日本の勝ち筋は、“同期技術”と“ドメイン知識”

  3. 3位

    ITトピック

    若手が言わない“本音の退職理由”上位は/「データ停止は景気後退よりも企業の脅威」6割/クライアントに告げずAI活用するフリーランス、ほか

  4. 4位

    Team Leaders

    ファイル名が命名規則に合っているかの自動チェック、Power Automateのフローで実現しよう

  5. 5位

    TECH

    “GPUなし”ノートPCで動くLLMで、ローカルAIエージェントを自作する

  6. 6位

    TECH

    糖尿病超早期を採血なしで検出、予防へ! 代謝や臓器のつながりに着目した予防法開発

  7. 7位

    ビジネス

    廃校がAIの心臓部に!? 地方の遊休施設を「AIデータセンター」に生まれ変わらせるハイレゾの挑戦がアツいぞ

  8. 8位

    TECH

    業界横断で“サイバー攻撃から供給網を死守” NTT・アサヒ・トライアルらが「流通ISAC」始動

  9. 9位

    Team Leaders

    バックオフィス業務もAIに“丸投げ” マネーフォワードが「Cowork」機能を2026年7月に投入へ

  10. 10位

    sponsored

    AI議事録はもう「Zoom」1つでいい “やりっぱなしの会議”を次のアクションへ変える

集計期間:
2026年04月07日~2026年04月13日
  • 角川アスキー総合研究所