From: Kazuhiro NISHIYAMA Date: 2008-09-30T23:27:38+09:00 Subject: [ruby-dev:36640] Re: net/pop.rb: APOPの脆弱性対応 西山和広です。 At Tue, 30 Sep 2008 19:25:19 +0900, Shugo Maeda wrote: > > 同じようなことですが、POP3Command#initializeでtimestampにマッチさせる > 正規表現自体を以下のように変えてしまってはどうでしょうか。 > > def initialize(sock) > @socket = sock > @error_occured = false > res = check_response(critical { recv_response() }) > @apop_stamp = res.slice(/<[!-~]+@[!-~]+>/) > end > > RFC1939によると、"The syntax of the timestamp corresponds to the > `msg-id' in [RFC822]"とのことなので、(ちょっと正規表現が緩いですが) > 問題ない気がします。 initializeを厳しくするのだと攻撃されている可能性があるということが わかりにくいかと思って別メッセージの例外になる方がいいかと 思ったのですが、考え直してみると、APOPのはずなのに # になるのは他の可能性も含めておかしいので、それで良さそうに思いました。 > 根本的な対策としては、ちゃんとした証明書でPOP over SSLを使うのがよい > のでしょうね。 サーバ側も含めて対策できる場合ならそうするのが一番いいですね。 -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)