1

我正在为 CMS 编写一个插件,用于处理图像(调整它们的大小)。如何确保只有某些目录可以?

我希望用户能够定义他们希望脚本在哪个目录中查找(并找到所有图像)。

我知道我可以要求$_POST['sub_directory_to_look_in']glob('galleries/' . $_POST['sub_directory_to_look_in'] . '/*.jpg');确保$_POST['sub_directory_to_look_in']没有'../',但是这样做有任何安全问题吗?

我已经研究过basedir功能,但不确定这是否有帮助

4

1 回答 1

1

为了安全起见,使用与目标目录相关的唯一标识密钥(例如用户 id 的加盐哈希)在用户与其内容之间进行映射。

这样,您的查询参数甚至不应包含有关您的基础架构的信息,而仅包含有关要传输的数据的信息,包括目标目的地的类型(不是它应该位于的位置,而是它应该相对位于的位置)。

PS:如果系统用户http://www.php.net/manual/en/function.realpath.phprealpath可以浏览, 您可以使用它来解析给定有效路径的符号链接

这个问题可能与PHP 中的 Sanitize file path有关

于 2013-04-23T06:22:16.877 回答