最近有个网站频繁被黑客攻击,由于网站采用的内容管理系统直接生成静态网页和上传文件,而空间的目录又必须设成777(对所有人可读,写和执行的权限),才能将新文件复制到目标目录。这样如果上传文件每次通过FTP去修改目录权限太过麻烦,而打开777的权限又将冒着被黑客不断攻击的危险,真是进退两难啊。
其实我设想的理想状况是这样的(针对的是Apache服务器):
PHP文件所在的组应该和空间目录属于同一组,甚至是同一所有者,这样上传文件就不需要再进行权限设置。但是有个前提是做好上传文件的安全检测,以防鱼目混珠。这样可以有效避免匿名用户对空间文件的修改。
但是,空间提供上的权限设置往往无法满足这样的要求,这样给处理权限的设置带来了一定得麻烦。如果只从自己这一方来考虑,防范黑客透过777目录权限来攻击的话,我能找到的方法暂时之有以下两种:
1、上传文件到通过web不可以访问的目录,然后通过cron定时将上传文件移动到web可以访问的目标目录。
2、使用.htaccess对目标目录进行限制,添加AddType application/x-httpd-php-source .php禁止执行PHP文件。