Home > web関連
web関連 Archive
webの脆弱性-クロスサイト・スクリプティング、SQLインジェクション-
- 2010-07-12 (Mon)
- web関連
DXです。。。
webの脆弱性について簡単にまとめてみました。
webの脆弱性とは
脆弱性とは、攻撃に対し、弱く脆いことです。日々、多くの人々が利用しているwebに潜む弱く脆いことにはいったいどのようなものがあるのでしょうか。
脆弱性の種類
情報処理推進機構(IPA)は脆弱性についての届出を受け付けています。情報処理推進機構:情報セキュリティ
http://www.ipa.go.jp/security/vuln/report/vuln2010q1.html
上記のページの情報によると、2010年第一四半期に届出のあった脆弱性の中で最も多いのは「クロスサイト・スクリプティング」で全体の53%、次いで「SQLインジェクション」で全体の16%となっています。
今回はその2種類の脆弱性について考えたいと思います。
クロスサイト・スクリプティング
クロスサイト・スクリプティングとは、掲示板のように入力された情報をそのまま表示できるwebページのプログラムが、訪問者のブラウザに悪意のあるコードを埋め込まれたページを表示させてしまう脆弱性のことです。悪意のあるコードを埋め込まれたページが個人情報を入力するページだった場合、送信された個人情報が悪意のあるコードを埋め込んだ人間のもとへ流れ出てしまう可能性があります。
わかりやすい説明は下記のサイトをご覧ください。
クロスサイト・スクリプティング
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文ではデータベースにある情報が書き換えられてしまいます。
わかりやすい説明は下記をご覧ください。
SQLインジェクション
http://www.ipa.go.jp/security/vuln/vuln_contents/sql_flash.html
まとめ
「クロス・サイトスクリプティング」も「SQLインジェクション」も、個人情報流出の危険性があるので対策を忘れず施したいですね。Home > web関連
- Recent Comments
-
- Recent Trackback
- Search
- Meta
- Links
- Feeds