日記/2005-12-30
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
リンク元
]
開始行:
*冬休み [#de381628]
*サニタイズ [#t9e89a76]
というあたりについて,つらつらと考えてみる.
サニタイズとは,web ブラウザからの入力値を別のプログラム...
入力値チェックの重要性は古くから知られており,私の場合は[...
apache の前身である NCSA httpd に付属していたサンプル CGI...
perl では,この問題に対して「taint(汚染)」という概念で...
これも赤ラクダ本の時代から perl に備わっている機能であり...
perl4 の時代は taintperl いう perl インタプリタでこの機能...
現在は perl -T,だったかな.
で,その機能は
-プログラム外部から来た文字列には「taint」フラグがセット...
-このフラグは,サニタイズしてくれなさそうな文字列演算では...
-このフラグは,s/// 演算子などのサニタイズ効果のある演算...
-そして,このフラグが付いた変数を引数として eval や syste...
といったところである.
このような「taint」機能は,perl だけではなく ruby などに...
が,現実問題,不正な(攻撃を意図した)文字列による web の...
何が問題なのだろうか.
そもそも,taint メカニズムは,脆弱性の一部は発見してくれ...
たとえば s/// 演算子で taint フラグはクリアされるが,置換...
ここで不完全なサニタイズが行われる可能性がある.
また,一言で「サニタイズ」と言っても,どの文字がメタ文字...
というわけで,なにか「必殺技」みたいなものは実装できない...
うーむ.
これがなかなか難しそうな気がする.
たとえば,以下のようなクラスを考えてみる.
- インスタンス変数は文字列と多数の tainted フラグ
- tainted フラグは各言語(HTML や sh など)に対して存在する
- HTML や sh などの言語は pluggable で,追加可能
- (各言語に対応した)サニタイズメソッドを通過したインス...
が,これを perl 上で実装した場合を考えてみると,たとえば ...
ここらもメソッドとして再定義してやればいいのだろうけど,...
ruby あたりではもう少しマシかもしれないけれど…
終了行:
*冬休み [#de381628]
*サニタイズ [#t9e89a76]
というあたりについて,つらつらと考えてみる.
サニタイズとは,web ブラウザからの入力値を別のプログラム...
入力値チェックの重要性は古くから知られており,私の場合は[...
apache の前身である NCSA httpd に付属していたサンプル CGI...
perl では,この問題に対して「taint(汚染)」という概念で...
これも赤ラクダ本の時代から perl に備わっている機能であり...
perl4 の時代は taintperl いう perl インタプリタでこの機能...
現在は perl -T,だったかな.
で,その機能は
-プログラム外部から来た文字列には「taint」フラグがセット...
-このフラグは,サニタイズしてくれなさそうな文字列演算では...
-このフラグは,s/// 演算子などのサニタイズ効果のある演算...
-そして,このフラグが付いた変数を引数として eval や syste...
といったところである.
このような「taint」機能は,perl だけではなく ruby などに...
が,現実問題,不正な(攻撃を意図した)文字列による web の...
何が問題なのだろうか.
そもそも,taint メカニズムは,脆弱性の一部は発見してくれ...
たとえば s/// 演算子で taint フラグはクリアされるが,置換...
ここで不完全なサニタイズが行われる可能性がある.
また,一言で「サニタイズ」と言っても,どの文字がメタ文字...
というわけで,なにか「必殺技」みたいなものは実装できない...
うーむ.
これがなかなか難しそうな気がする.
たとえば,以下のようなクラスを考えてみる.
- インスタンス変数は文字列と多数の tainted フラグ
- tainted フラグは各言語(HTML や sh など)に対して存在する
- HTML や sh などの言語は pluggable で,追加可能
- (各言語に対応した)サニタイズメソッドを通過したインス...
が,これを perl 上で実装した場合を考えてみると,たとえば ...
ここらもメソッドとして再定義してやればいいのだろうけど,...
ruby あたりではもう少しマシかもしれないけれど…
ページ名:
-->