确保public_html文件夹中文件的安全性

时间:2013-04-29 08:36:22

标签: php apache security directory-structure

我的public_html中有一个图像目录结构,如下所示:

public_html/
   design_images/
       product_11/
           112342_234/ ... a bunch of images stored here for this product
           112343_910/ ... images for this product
           more image folders/...
           ...

public_html文件夹中,我有php文件,可以在产品文件夹中进行图像处理和PDF转换。我只是担心有人会在某处注入一些脚本并删除其中一个产品文件夹。我将所有这些目录保存在public_html上,因为在整个网站中我经常需要动态显示产品文件夹中的图像。

我怎样才能抵御这种情况?我在虚拟服务器上使用Apache,并且我可以访问托管包中的root。

我在public_html / js中也有javascript文件,是否有可能以某种方式来编辑它们?

1 个答案:

答案 0 :(得分:1)

移出私人html文件夹并制作类似(伪)的脚本:

loadimage.php

<?
$imageName = $_GET['image']
$file = (abstract folder name and file name from $imagename)
$file = (sanatize all variables before passing it to the filesystem)

$sizeAndType = getimagesize($file);
header('Content-Type:'.$sizeAndType['mime']);
header('Content-Length: ' . filesize($file));
readfile($file);

并使用www.example.com/loadimage.php?image=product_1234_something.jpg致电(或者您选择建立名称。

然后用mod_rewrite编写一个htaccess来清理网址会更好,这样你就可以使用旧的或更好的网址构建。

然而,这并不能保护您免受一切伤害。你仍然需要确保服务器的其余部分没有像777公共文件夹那样的严重漏洞,更像是这样。