ほとんど世にも奇妙な物語、何が安全でないというのか?
中間ファイルには大きく二種類あってそれぞれで驚異が異なる。一つはわかりやすい中間ファイル名から内容を読み込まれてしまうパターン、ランダムにはしてるけど名前の特定や先回りをされてしまうようなファイル名。
一時ファイルを作成するための関数は、単にファイル名を指定するものと、実際にファイルを開くものの2つに分類されます
最後に、mkstemp() は、一時ファイルを作成するための、それなりに安全な方法である。
mkstemp() は、ユーザーによって提供されたファイル名テンプレートと、ランダムに生成された一連の文字を組み合わせて、一意のファイルを作成し、開こうとする。そのようなファイルを作成できない場合は、失敗して-1を返す。これは、ユーザーが明示的にアクセス権を変更しない限り、ファイルが改ざんから保護されることを意味する。しかし、mkstemp() は予測可能なファイル名を使用しているため、攻撃者が使用されるファイル名を予測して事前に作成することで mkstemp() を失敗させると、アプリケーションはサービス拒否攻撃に対して脆弱になる可能性がある。