创建图像服务器,其中URL必须通过$_GET
参数传递。我想知道是否有办法阻止file_get_contents($path)
在我的服务器上打开任何本地文件,如果恶意用户决定传入(例如)
“/hosts/my-site/index.php”
除了尝试修改$path
变量之外,还有其他方法,但我找不到任何关于这个主题的内容!
编辑:
远程URL示例(下载映像并保存其缓存版本):
http://www.answers4macs.com/wp-content/uploads/2011/03/8edNXtiOWquvd43gaDFsdRWgo1_250.jpg
由于应用程序的性质,我需要将URL传递给服务器。这些文件需要在某个时候下载。
答案 0 :(得分:0)
创建一个图像服务器,其中URL必须通过$ _GET参数传递
请不要这样做。
确保$ _GET参数是包含路径的数据库记录的id
,然后您可以根据您控制的记录验证ID。
答案 1 :(得分:0)
首先,使用get参数创建文件路径几乎总是一个糟糕的主意。正如leemo建议的那样,明智的做法是根据您自己的归档方案将文件转储到某处,并跟踪所有内容使用数据库的位置。
但是,作为网络服务器管理的一般问题,您的网络应用运行的用户应具有非常有限的权限。理想情况下,他们不应该访问包含您的Web应用程序的目录之外的任何内容。这些权限在操作系统级别处理。