PHP使ってるんならstrip_tags()やhtmlspecialchars()くらい覚えておこう。

セキュリティに100%は無く、追っかけだすとキリがないのでどっかで区切るしかない。 が、それにしてもIPA(独立行政法人情報処理推進機構)の講演会受付フォームのXSS脆弱性は、 初歩的な対策をとっていなさすぎる。

IPA XSS
ぼくはまちちゃん!(Hatena) - IPAたんからの返事
攻撃方法はというと(上記サイトのソースから抜粋)
<body onload="document.getElementById('f').submit()">
<h1>IPA XSS</h1>
<form action="https://www.ipa.go.jp/app/form/lecture_receptions/add" method="post" id="f">
<input type="text" name="data[LectureReception][lecture_id]" value="9">
<input type="text" name="data[LectureReception][theme_id][18]" value='"><script>alert("こんにちはこんにちは!!")</script>'>
こんな初歩的な。。。

どんなソフト使ってんのかなと思ってIPAのサイトのヘッダとかを眺めていたら

Server: Apache
X-Powered-By: PHP/4.4.4
ということらしい。PHP使ってるなら、フォームからPOSTされる全ての値に対してstrip_tags()するだけでも、 あるいは次の画面で表示する前にhtmlspecialchars()するだけでも、 上のような初歩的な話は防げるのだが。

もちろん一般論としてWebサイトの攻撃方法はいろいろあってそれを防ぐ方法もひとつじゃないわけだが、それにしても「POSTされた値は全て疑って余計な文字を抜くor変換する」みたいな基本的な手法くらいは覚えておいたほうがいいだろう。

と、いう記事の草稿を書いてしばらくおいといた間に IPAセミナー受付フォームにおけるクロスサイト・スクリプティングのぜい弱性について (情報処理推進機構:重要なお知らせ 2007/2) ということになってました。

追記:
ブックマークのコメントでなんだかウダウダ書いてる方がいるようだが、 Webサイトの攻撃方法もいろいろあって防ぐ方法もひとつじゃないということは上に書いたとおり。 いちいち反論する気はないのであしからず。 とりあえず 安全なウェブサイトの作り方でも読んでということで。(って、ああ、これもIPAのコンテンツか(笑))。それからstrip_tagsだけみたいに思われるのもなんだかなのでタイトルも変更。

トラックバックURL

このエントリーのトラックバックURL:
http://www.ywcafe.net/mt/mt-tb.cgi/711