我有一个在我的网站上用PHP创建的上传表单,人们可以上传一个zip文件.然后提取zip文件,并将所有文件位置添加到数据库中.上传表单仅供人们上传图片,显然,文件在zip文件夹中我无法检查文件被提取之前要上传的文件.我需要一段代码来删除所有非图像格式的文件(.png,.jpeg等).我真的很担心人们能够上传恶意的php文件,存在很大的安全风险!我还需要注意人们改变php文件的扩展,试图绕过这个安全功能.
这是我使用的原始脚本http://net.tutsplus.com/videos/screencasts/how-to-open-zip-files-with-php/
这是实际提取.zip文件的代码:
function openZip($file_to_open) { global $target; $zip = new ZipArchive(); $x = $zip->open($file_to_open); if($x === true) { $zip->extractTo($target); $zip->close(); unlink($file_to_open); } else { die("There was a problem. Please try again!"); } }
谢谢,本.
我真的很担心人们能够上传恶意的php文件,安全隐患很大!
冰山一角!
我还需要注意人们改变php文件的扩展,试图绕过这个安全功能.
通常,更改扩展名将阻止PHP将这些文件解释为脚本.但这不是唯一的问题.除了'...... php'之外还有更多可能会损害服务器端的东西; '.htaccess'和设置了X位的文件是显而易见的,但绝不是你要担心的.即使忽略服务器端的东西,也存在巨大的客户端问题.
例如,如果某人可以上传".html"文件,他们可以在其中包含一个