Php I';我正在为CMS编写一个插件,该插件将处理图像(调整图像大小)。如何确保只有某些目录是正常的?
我正在为CMS编写一个插件,该插件将操作图像(调整图像大小)。如何确保只有某些目录是正常的 我希望用户能够定义他们希望脚本在哪个目录中查找(并查找所有图像) 我知道我可以要求Php I';我正在为CMS编写一个插件,该插件将处理图像(调整图像大小)。如何确保只有某些目录是正常的?,php,security,Php,Security,我正在为CMS编写一个插件,该插件将操作图像(调整图像大小)。如何确保只有某些目录是正常的 我希望用户能够定义他们希望脚本在哪个目录中查找(并查找所有图像) 我知道我可以要求$\u POST['sub_directory_to_look_in']和glob('gallers/'.$\u POST['sub_directory_to_look_in'./*.jpg')并确保$\u POST['sub\u directory\u to\u look\u in']没有'../',但这样做是否存在安全问
$\u POST['sub_directory_to_look_in']
和glob('gallers/'.$\u POST['sub_directory_to_look_in'./*.jpg')
并确保$\u POST['sub\u directory\u to\u look\u in']
没有'../'
,但这样做是否存在安全问题
我已经研究了
basedir
函数,但不确定这是否有助于为了安全起见,请使用与目标目录相关的唯一标识键(例如用户id的盐渍散列)在用户与其内容之间进行映射
这样,您的查询参数甚至不应该包含关于您的基础设施的信息,而应该只包含关于要传输的数据的信息,包括目标目的地的类型(例如,不是应该位于何处,而是应该相对位于何处)
注意:如果系统用户可以浏览,您可以使用realpath
解析给定有效路径的符号链接
这个问题可能与有关。为了安全起见,请使用与目标目录相关的唯一标识键(如用户id的盐哈希)在用户与其内容之间进行映射 这样,您的查询参数甚至不应该包含关于您的基础设施的信息,而应该只包含关于要传输的数据的信息,包括目标目的地的类型(例如,不是应该位于何处,而是应该相对位于何处) 注意:如果系统用户可以浏览,您可以使用
realpath
解析给定有效路径的符号链接
这个问题可能与您如何处理找到的文件有关?对于图像和拉链:解压缩,您如何处理找到的文件?对于图像和拉链,您如何调整大小、裁剪等:解压缩