「脆弱性対策はミクロな範囲で確認できることが望ましい」の話

パストラバーサル脆弱性対処のためのファイル名の確認は、ファイルをオープンする直前(ファイル名を使う直前)に行うべきだ、という考え方

もう入力値検証はセキュリティ対策として *あてにしない* ようにしよう - 徳丸浩のtumblr

この考え方、つまり「脆弱性対策はミクロな範囲で確認できることが望ましい」という考え方(以下「ミクロ派」)に、ぼくは共感します。徳丸さんが記事の最後でまとめられているとおり、「入力値検証による脆弱性対策は、検証と脆弱性発生箇所が離れるので、確認がしにくい」ためです。

冒頭に引用した「ファイル名の確認」の例においては、「確認の第一歩として文字エンコーディングの妥当性検証が必要になる」というのがミクロ派、「そんなの入口でやればいいじゃん」というのがマクロ派です。少なくともぼくの理解ではそう。

2009-09-10に、以前のブログで書いた「不正な文字列をどこでチェックすべきか」でも、ぼくはミクロ派の立場に立っていました。当時いただいたはてブコメントは、マクロ派のご意見ばかりだったんですよ。

追記

もし不正な文字エンコーディングがブロックされていることが保証されていれば、入口以外での文字エンコーディングチェックを省力することはありだと思います

Twitter / ockeghem: ただし、さっきの話、PHPの場合はそうなんだけど、もし不正な ...

異存なしです。

もしぼくが省力化したくなったら、入口以外では「validな文字列型」や「フォルダ名型」で扱うと思います。不正なバイト列であれば、インスタンス化できなくすればよいわけです。これなら、ミクロ派のぼくでも安心です。

型のない言語は使いません。

クレディセゾンからのしつこい保険勧誘電話への対応メモ

今日もクレディセゾン(0120-984-741)から保険勧誘の電話がかかってきた。「興味がない」と何度も伝えているのに、やむ気配がない。

いいかげん頭に来たので、「二度とかけてこないでもらえますか」と、先方のテラカド氏(男性)に伝えたら、「承知しました」との返事。あれ、はっきり伝えればよかったのか。

気になって調べたところ、「特定商取引に関する法律」の第四節・第十七条で、再勧誘が禁止されているのだと分かった。

(契約を締結しない旨の意思を表示した者に対する勧誘の禁止)
第十七条  販売業者又は役務提供事業者は、電話勧誘販売に係る売買契約又は役務提供契約を締結しない旨の意思を表示した者に対し、当該売買契約又は当該役務提供契約の締結について勧誘をしてはならない。

万一、もう一度かかってきたら、この法律について知っているのか問いただしてみよう。「興味がない」=「売買契約又は役務提供契約を締結しない旨の意思を表示した」ではないのか、とも。

以下の情報が参考になる。

私自身は未確認だが、0120-917-278も同様らしい。

記事検索
Twitter