「直しても直しても直らない」へのコメント
「水無月ばけらのえび日記 : 直しても直しても直らない」について、3件のコメントが書かれています。
[3014] Re: 「直しても直しても直らない」
えむけい (2005年6月8日 1時23分)
ブラウザのホゥルの修正も似たような感じですね。
たとえばあえて【謎】Firefoxを例に挙げますが、
http://www.mozilla-japan.org/projects/security/known-vulnerabilities.html
で「javascript:」を検索してみるとなんとなく分かるのではないかと【謎】。
しかも本体はどうにかつぎはぎを繰り返して修正しても拡張機能がちょっと不注意にloadURIを使っただけであっさり再発するとか。
[3015] Re: 「直しても直しても直らない」
ECMAscript準拠なんて飾りです (2005年6月9日 19時7分)
作っている側が全ての実装を把握しきれていないんだから、
使う側がフィルタで完璧に100%除去できるわけがない。
現状のHTML&JavaScriptエンジンと、HTMLは解釈できるが
JavaScriptはエンジンそのものが外されていて根本的に処理
できないHTMLエンジン(ソースプログラムは同一)、という
2つをオプション設定によって使い分けるというアプローチが
最も安全で確実だと思うけど、ブラウザメーカーはなぜそう
いう根本的な対策をしないのか不思議だ。
[3016] Re: 「直しても直しても直らない」
Ruke (2005年6月9日 21時19分)
セキュリティ対策というのはいたちごっこになった時点で絶望的になるというのがセキュリティ技術の基本ですが(無限の市場を意味するために企業はむしろ好みますが)、そういう観点から言ってサニタイジングという行為自体がそもそも誤っているのかもしれません。
この種のサニタイジングフィルタの問題は、データに問題があるという事を判別する事に主眼がおかれている事です。しかし、フィルタを通して出てきた物に確実に問題が含まれていないようにする事は難しいです。あり得るのは、再帰的に問題がなくなるまでフィルタを作用させる事ですが、その動作を正確に把握する事は困難です。それに、そうやって得られた結果が本当に問題を含まないという保証もない。
考えてみれば、問題のないデータをきちんと規定せずに問題のあるデータを完璧に判別する事ができるはずがないわけで、まずは問題のないデータの何たるかをきちんと考えるべきです。そしてそうすれば、問題のあるデータを判定するよりも、問題のないデータを一発で判定するのが素直なアプローチとなるはずです。
つまり、勝手にHTMLのサブセットを作ってDTDを書くなり、付加的なルールを決めるなりして正しいデータを規定し、データを受け取った時にはvalidatorを通して誤っているデータは通さないようにすればよい。
もちろん、特定の仕様に従ってデータを用意する事は一般のユーザには困難ですから、正しいデータの仕様を反映したエディタを用意する事が不可欠ですが。まあ「何をどうしたってvalidなHTMLしか作れないHTMLエディタ」すらほとんど存在していない現状では難しいのでしょうが。
ふと迷い込んで妄想を書いてみました。
「水無月ばけらのえび日記 : 直しても直しても直らない」についてコメントを書く場合は、以下のフォームに記入してください。