要解决完整临时性文件名发生问题的可能性,可使用环境变量覆盖目录名称,通常是TMPDIR。处理此类安全性议题时,文件名必须是不可预知的。BSD与GUN/Linux系统都提供了mktemp命令,供用户建立难以猜测的临时性文件名称。当临时性文件无法建立或没有mktemp可用时,条件式exit命令可确保马上终止程序并带出错误输出。最新版的mktemp允许省略模板;它会使用/tmp/tmp.XXXXXXXXXX。这两个设备的差别,在/dev/random会一直封锁,直到系统产生的随机数已充分够用,所以它可以确保高品质的随机数。相对地,/dev/urandom不会死锁,其数据的随机程度也不高。由于这些设备是共享资源,攻击者轻易就能加载拒绝服务,通过读取该设备并丢弃数据,阻断/dev/random。而/dev/urandom在我们最快的系统上执行,三秒钟即可产生相同的数据。

Shell中建立与使用临时性文件的方法详解

Shell中建立与使用临时性文件的方法详解

Shell中建立与使用临时性文件的方法详解