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

时间:2013-04-23 06:13:46

标签: php security

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

我希望用户能够定义他们希望脚本查看的目录(并查找所有图像)。

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

我调查了basedir功能,但不确定这是否有帮助

1 个答案:

答案 0 :(得分:1)

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

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

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

此问题可能与Sanitize file path in PHP

有关