如果上传目录被植入 PHP 文件,即可远程执行。为了安全起见,我们一般会对上传目录禁止运行 PHP 脚本。
在 Apache 下面我们可以通过一下方法来禁止运行 PHP 脚本:
php_flag engine off
Nginx 方法如下:
location /wp-content/uploads/ {
location ~ .*\.(php)?$ {
deny all;
}
}
而对于多个目录的话,可以一起进行限定:
location ~* ^/(uploads|images)/.*\.(php|php5)$
{
deny all;
}
lighthttpd
view sourceprint?$HTTP["url"] =~ "^/(forumdata|templates|upload|images)/" {
fastcgi.server = ()
}
般iis中比较简单,如下图所示即可
【apache配置禁止访问】
1. 禁止访问某些文件/目录
增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库:
Order allow,deny
Deny from all
禁止访问某些指定的目录:(可以用
Order allow,deny
Deny from all
通过文件匹配来进行禁止,比如禁止所有针对图片的访问:
Order allow,deny
Deny from all
针对URL相对路径的禁止访问:
Order allow,deny
Deny from all
针对代理方式禁止对某些目标的访问(
Order allow,deny
Deny from all
2. 禁止某些IP访问/只允许某些IP访问
如果要控制禁止某些非法IP访问,在Directory选项控制:
Order allow,deny
Allow from all
Deny from 10.0.0.1 #阻止一个IP
Deny from 192.168.0.0/24 #阻止一个IP段
只允许某些IP访问,适合比如就允许内部或者合作公司访问:
Order deny,allow
Deny from all
All from example.com #允许某个域名
All from 10.0.0.1 #允许一个iP
All from 10.0.0.1 10.0.0.2 #允许多个iP
Allow from 10.1.0.0/255.255.0.0 #允许一个IP段,掩码对
All from 10.0.1 192.168 #允许一个IP段,后面不填写
All from 192.168.0.0/24 #允许一个IP段,网络号
Apache:解决办法;
Options -Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Deny from all