トップページ⇒php
104コメント27KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/10/27 10:37ID:AENF9z2S
http://securit.etl.go.jp/research/paper/css2001-takagi-dist.pdf

簡単にいって、フォームの入力をサーバサイドで処理してHTMLと
して出力する時に、文字のエスケープを適切に行わないと、
Cookieを取得するJavaScriptを埋め込み&出力結果を別サイトに
リダイレクトする、というような方法を使ってCookieを第三者に
盗まれる可能性がある、ということです。

上の資料を参考にしながら、
それぞれの処理系における、どのようの文字列エスケープを行うべきか、
といったサーバサイドの対策に関する情報を交換していきたいと思います。
0002名無しさん@お腹いっぱい。01/10/27 11:07ID:AENF9z2S
とりあえずは、Perlの場合で、BBSやチャットだと、
一番カタイのはタグ禁止ということにして<,>を文字実体参照に変換してしまう
のが手っ取り早いと思います。
0003名無しさん@お腹いっぱい。01/10/28 03:25ID:ZO04qCcD
セキュリティ板に載ってました、クロスサイトスクリプティング脆弱性の
最近の具体例が。
http://memo.st.ryukoku.ac.jp/archive/200110.month/index.html
のArticle 1756。見ればわかりますがHTMLタグのエスケープ処理を
忘れてるものと思われます。<SCRIPT>タグなんか埋め込まれた日には
色々悪さされそうです。
0004名無しさん@お腹いっぱい。01/11/02 23:53ID:bu2IICno
本気で対策したい人たちが読むことを期待して。
少なくともFORMから入力されたパラメタは、全て読み込んだ時点で
実体参照に置換してしまう(汚染チェックも行う)。
s/&/&/g
s/</</g
s/>/>/g
s/"/"/g
URLやHTTPヘッダもそうするべきだけど、そこまでは辛いか?後は比較などで、
元の文字列でなければ困るところだけ、一時的に元に戻すようにする。
s/</</g
s/>/>/g
s/"/"/g
s/&/&/g
(上記は2chがちゃんと処理してなかった場合ちゃんと見えないかも。
面倒なんでその場合はページのソースを見てください)
必要な箇所での戻し忘れがあった場合の不都合は、比較的簡単に目に見えるので
どってこたない。置換を忘れた場合は見つけにくい上にセキュリティ問題になる
ことを考えれば、これくらい徹底した方がいいのでは?
0005名無しさん@お腹いっぱい。01/11/03 00:20ID:zLquoryW
男は黙って tr/\W//d
0006401/11/03 00:48ID:???
s/&/&amp;/g
s/</&lt;/g
s/>/&gt;/g
s/"/&quot;"/g
だ。下のは
s/&amp;/&/g
s/&lt;/</g
s/&gt;/>/g
s/&quot;"/"/g
ふー…ちゃんと&と"も置換してよ。
0007age01/11/03 00:52ID:???
age
0008age01/11/03 17:57ID:???
age
0009名無しさん@お腹いっぱい。01/11/03 19:10ID:???
&をエスケープしないのはヤバーイよ!
ネスケ4で見てね。
0010901/11/03 19:17ID:???
つづく
00111001/11/03 19:17ID:???
こんなことも(;´Д`)
00121001/11/03 19:24ID:???
シパーイシターヨ
■ このスレッドは過去ログ倉庫に格納されています