fc2ブログ

Home > web関連

web関連 Archive

webの脆弱性-クロスサイト・スクリプティング、SQLインジェクション-

DXです。。。
webの脆弱性について簡単にまとめてみました。

webの脆弱性とは

脆弱性とは、攻撃に対し、弱く脆いことです。
日々、多くの人々が利用しているwebに潜む弱く脆いことにはいったいどのようなものがあるのでしょうか。

脆弱性の種類

情報処理推進機構(IPA)は脆弱性についての届出を受け付けています。

情報処理推進機構:情報セキュリティ:ソフトウェア等の脆弱性関連情報に関する届出状況[2010年第1四半期(1月~3月)]_1278856637458
情報処理推進機構:情報セキュリティ
http://www.ipa.go.jp/security/vuln/report/vuln2010q1.html

上記のページの情報によると、2010年第一四半期に届出のあった脆弱性の中で最も多いのは「クロスサイト・スクリプティング」で全体の53%、次いで「SQLインジェクション」で全体の16%となっています。
今回はその2種類の脆弱性について考えたいと思います。

クロスサイト・スクリプティング

クロスサイト・スクリプティングとは、掲示板のように入力された情報をそのまま表示できるwebページのプログラムが、訪問者のブラウザに悪意のあるコードを埋め込まれたページを表示させてしまう脆弱性のことです。
悪意のあるコードを埋め込まれたページが個人情報を入力するページだった場合、送信された個人情報が悪意のあるコードを埋め込んだ人間のもとへ流れ出てしまう可能性があります。

わかりやすい説明は下記のサイトをご覧ください。
情報処理推進機構:セキュリティセンター:知っていますか?脆弱性 (ぜいじゃくせい)/2. クロスサイト・スクリプティング_1278857388191
クロスサイト・スクリプティング
http://www.ipa.go.jp/security/vuln/vuln_contents/xss_flash.html

SQLインジェクション

SQLインジェクションは、データベースと連携したwebサイトで、データベースの操作を行なうプログラムにパラメータとしてSQL文の一部を挿入することにより、データベースを改ざんしたり不正に情報を入手できてしまう脆弱性です。
たとえば以下のようなSQL文をプログラムから実行するとします。
  select * from テーブル名 where 条件となるカラム名 = '(入力値)';  

このとき、入力値に以下のようなSQLの断片を入れたとします。
  ';update テーブル名 set 更新するカラム名 = '更新' where 条件となるカラム名 = '条件';  

すると、もとあったselect文が以下のようになってしまいます。
  select * from テーブル名 where 条件となるカラム名 = '';update テーブル名 set 更新するカラム名 = '更新' where 条件となるカラム名 = '条件';  

このとき、初めに実行されるselect文では全ての情報が取得可能となり、情報漏洩に繋がります。また、次に呼ばれるupdate文ではデータベースにある情報が書き換えられてしまいます。

わかりやすい説明は下記をご覧ください。
情報処理推進機構:セキュリティセンター:知っていますか?脆弱性 (ぜいじゃくせい)/1. SQLインジェクション_1278859833404

SQLインジェクション
http://www.ipa.go.jp/security/vuln/vuln_contents/sql_flash.html

まとめ

「クロス・サイトスクリプティング」も「SQLインジェクション」も、個人情報流出の危険性があるので対策を忘れず施したいですね。

Home > web関連

Recent Comments
Recent Trackback
Search
Meta
Links
Feeds

Page Top