用于验证文件路径的PHP解决方案

时间:2013-01-13 03:57:49

标签: php validation filtering filepath

我需要验证传递的文件路径,然后才能将其写入磁盘并创建新的目录结构。例如,我们有$path = "/uploads/base/../../user_new_dir/img.jpg"。这是由"/.." ("/uploads/base"引起的错误路径 - 允许保存目录,"/user_new_dir/img.jpg" - 用户定义的路径和文件名。)

我无法使用realpath($path),因为它仅适用于现有文件。我无法使用realpath(dirname($path)),因为我们可能会创建用于保存文件的新文件夹。

我查找脚本,检查所有可能的情况。我担心我会遗漏像'.'字符的多字节表示或其他意外方式,这可能会导致安全问题。你能否在任何框架或cms中建议我的任务的适当实现,所以我可以调查一下?

1 个答案:

答案 0 :(得分:2)

看看这个:https://stackoverflow.com/a/4050444/108544

该函数对路径字符串进行操作,如果目标路径实际上不存在于文件系统上,也应该有效。