将文件保存在文档根目录上方时,是否有必要放弃上传图片的扩展名?我正在考虑通过img.php?i=thisImage.png
调用图像,其中图像名称内部通过mb_split('.',$_GET['i'])
运行,后者用作内部header('Content-Type: image/$img[1]')
。就我个人而言,无论是img.php?i=thisImage.png
还是img.php?i=thisImage
,它似乎都不重要,但我总是要加强安全性。
此外,除了使用Content-Type:
Content-Length:
的PHP代理并提供上述文档根目录中的图像外,还有哪些最佳方法?关于通过IM从源头复制图像,我听到了不一的看法,但正如我所说,他们的意见不一。
答案 0 :(得分:1)
如果文件保存在Web可访问区域之外并通过脚本推送到客户端,我知道单独保留文件名没有问题。
我使用的方法(在KFM和我的CMS中)是使用mod_rewrite将调用重定向到将为您检索文件的脚本。
例如,如果您有URL /f/file.jpg,但文件实际位于../files/file.jpg,那么您使用mod_rewrite来“捕获”请求并将其重定向到脚本。例如:
RewriteRule ^f/(.*)$ /get-file.php?filename=$1 [L]
然后编写get-file.php,使用readfile()之类的方法通过
传递文件