insecure tempfile problem

Yuuichi Teranishi teranisi @ gohome.org
2003年 5月 13日 (火) 11:01:42 JST


反応ありがとうございます。

At 13 May 2003 06:04:01 +0900,
Shuhei KOBAYASHI wrote:
> 
> teranisi @ gohome.org (Yuuichi Teranishi) writes:
> > poe.el あたりに入れることを想定した make-temp-file の実装案を添付します。
> 
> * SUFFIX は独自拡張でしょうか?

いえ、これで気づきましたが、21.3.50 (CVS 先端)とリリース版とは、
だいぶ定義が違うようです。

2002-09-27  Stefan Monnier  <monnier @ cs.yale.edu>

        * subr.el (make-temp-file): Make the file have mode 600.

2002-04-28  Richard M. Stallman  <rms @ gnu.org>

        * subr.el (make-temp-file): New arg SUFFIX.

byte-compile 時にこれらをチェックして、挙動が古ければ、
定義を上書き、とすると…やりすぎかなあ。

> * PREFIX が絶対パスの場合には?

やるとしたら、
「絶対パスを PREFIX に指定すると make-temp-name と同程度のリスクを
  負う場合がある。」
ということを明示するのかなと思います。

> * temporary-file-directory が private でない場合でも親が private なら?
>   (temporary-file-directory に ${HOME}/tmp のようなものを指定した場合)

この場合、1つディレクトリが余計にできるだけなので、
たいした問題ではないかなと思いました。

> * temp file の file mode は make-temp-file の外で設定すべきなのでは?

今の定義では 700 で明示的に set-file-modes しているようです。

> などなど, 色々と問題がありそうですし, make-temp-file が定義されている
> といって, 他のアプリケーションが安心して使ってしまうのも不安なので, 

個々のアプリケーションがいちいちバラバラに対処するよりは、
ましかなあと思うのですが、

> > * (Emacs 21 にはある) make-temp-file を、他の Emacsen 向けにも
> >   APEL あたりで用意するようにする。
> 
> これは避けた方がいいんじゃないかと思います.

mime-make-temp-file 程度にとどめますか…?

> | * SUFFIX は独自拡張でしょうか?
> 
> 今使っている Emacs 21.3 では SUFFIX 引数がないのでそう仮定してみます.
> 以下の理由で FLIM/SEMI では SUFFIX を指定できないと不便な気がするので
> make-temp-file に代わる関数を用意するのが良さそうな気がしてきました.
> 
> * 添付ファイルを再生する場合.
>   指定されたファイル名が重複しているかもしれないので一時ファイル名を使用.
>   拡張子を保存しないと helper application の動作に支障があるかもしれない.
> 
> * 添付ファイルを保存する場合.
>   指定されたファイル名を生かしたい.
>   helper application からの保存を諦めて Emacs から直接保存するのでは駄目?

SEMI では、前に出した方針の通り、
make-temp-file の dir-flag を指定して、一時ディレクトリを作って
その下に指定された名前のファイルを作ることを考えてました。

--
Yuuichi Teranishi (寺西裕一) <teranisi @ gohome.org>
GPG Public Key: http://www.gohome.org/gpg/teranisi.asc
"I just want to live while I'm alive..."




More information about the Emacs-mime-ja mailing list