R.A. Epigonos et al.

2007.11.06 言動にそぐわない

下のようにいったにもかかわらず、別のことをやってる今日このごろ。PerlのTaintモードで@INTにカレントが含まれない。useするときに困ってる。まぁTaintモードで書かなければいいんだけど。@INTにカレント追加してもだめ、相対パス、ホームからの相対パス、絶対パスでもだめ。どうする。

汚染検出モードについて、The sky is the limit! | セキュア・プログラミング講座/セキュア Perl プログラミングがまとまっている感じ。注意しなければいけないことは、汚染フラグは正規表現で変数の内容をフィルタすることで下ろせるが、フィルタした正規表現の妥当性についてはチェックしてくれないと言うことか。あと、perlsec - Perl のセキュリティのあたりも面白い。変数が汚染されているかどうかをチェックするには、Scalar::Utilのtainted()を使うか、is_tainted()サブルーチンを作れ。と言うことか。

汚染を洗浄するためにどうすればいいのかということで、CERT/CC Understanding Malicious Content Mitigation For Web Developersに載っているサンプルは使えるかもしれない。だめなものを削除するNegativeフィルタとよいものを抽出するPositiveフィルタの2つが載っている。洗浄はそれぞれの変数に対して適当なものを使うべきで、どちらのフィルタを使うにしても、その場その場で異なった洗浄が必要になると思う。

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2007-04-08T16:11:25+09:00
  2. Modified: 2007-04-08T14:38:09+09:00
  3. Generated: 2023-08-27T23:09:11+09:00