From: matz@... (Yukihiro Matsumoto) Date: 2004-08-21T23:54:59+09:00 Subject: [ruby-dev:24153] Re: CGI::Session has security problem? まつもと ゆきひろです In message "[ruby-dev:24147] Re: CGI::Session has security problem?" on 04/08/21, Takahiro Kambe writes: |> ただねえ、CGI::Sessionを使うようなCGIではちゃんとumask指定し |> てよ、という気はしないでもないです。でないと、fopen()とかで |> ファイルを作ったら終わりですよね。 |気持ちはわからなくありませんが、umaskの設定に依存すべきではないでしょ |う。古くはUNIX Network Programmingあたりで「デーモン化するときにumask |の設定を受けないようにするために、明示的にumask(0)すべし」といったこと |も書かれていたと記憶しています。 | |もちろん、CGI::Sessionはデーモンとなるためではありませんが、ライブラリ |的な関数は呼び出し側のumask設定に依存すべきではないと思います。 これは反論ではなくて、純粋に質問なのですが、 * fopen(3)には書き込みオープンによって新規に作成されるファ イルのパーミッションを明示的に指定する方法はない * これを制御する唯一の方法はumaskである * しかし、「ライブラリ的な関数は呼び出し側のumask設定に依 存すべきでない」。 * ということは、ライブラリ的関数でfopenを使ってファイルを 新規に作成することは「やってはいけないこと」である。ライ ブラリ的関数でファイルを新規作成する場合には、open(2)を 直接使う必要がある ということなのでしょうか。 それならそれで納得できないことはないのですが、結構違反してい るケースは多そうな気がします。 まつもと ゆきひろ /:|)