临时文件通常用来保存无法保存在内存中的数据,或者传递给必须从文件读取的外部程序。一般我们会在/tmp目录下生成唯一的文件名,但是安全的创建临时文件并不是那么简单,需要遵守许多规则。永远不要自己去尝试做这件事,而是要借助库函数实现。而且也要小心
临时文件通常用来保存无法保存在内存中的数据,或者传递给必须从文件读取的外部程序。一般我们会在/tmp目录下生成唯一的文件名,但是安全的创建临时文件并不是那么简单,需要遵守许多规则。永远不要自己去尝试做这件事,而是要借助库函数实现。而且也要小心清理临时文件。
临时文件引起的最大问题就是,可以预测文件名,导致恶意用户可以预测临时文件名,从而创建软链接劫持临时文件。 创建临时文件一般使用的模块就是tempfile,此模块库函数常用的有以下几个:
tempfile.mktemp # 不安全,禁止使用
以下几种方式分别介绍了安全的创建临时文件及不安全的方式。 不正确1:
不正确2:
不正确3:
3.2 正确示例 正确1:
正确2:
正确3:
|
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27