配置Apache防止webshell上传

简介: 在Linux服务器的web应用中,经常需要上传文件到服务器上。不管是php的也好,jsp的也好,如果web程序对于上传检查不严格,可导致黑客上传webshell,对服务器安全威胁自不用说了。
在Linux服务器的web应用中,经常需要上传文件到服务器上。不管是php的也好,jsp的也好,如果web程序对于上传检查不严格,可导致黑客上传webshell,对服务器安全威胁自不用说了。对于web开发对文件上传的限制,这里就不说了,这里仅仅来讨论服务器如何设置才防止上传的webshell执行。

记得以前写过一篇文章,针对Windows下web目录的设置,脚本可以执行的仅仅给web匿名账户读取文件的权限,用户可以上传的目录不给其执行权限。这样即使web程序有问题,就算上传了webshell也无法执行的。

在Linux情况下,本来以为去除上传目录的执行权限后,就ok了的。通过chmod去除后,导致无法上传,比较郁闷。后来一想,在Windows下是通过IIS来限制对web目录的解析的,那apache应该也可以的吧。

查找了apache的帮助文档,终于让我找到了一种解决方法:
限制某一个目录针对php的解析方法之一,昨天在FreeBSD上测试可用。
在httpd.conf配置文件中,搜索Directory节点,添加新的节点;
<Directory "/www/home/upload">
 AddType text/html .php
</Directory>
将php文件解析为html,浏览者看到的是自己的源码了,hoho。
刚才又找到一种方法,关闭路径/www/home/upload的php解析:
<Directory "/www/home/upload">
 <Files ~ ".php">
 Order allow,deny
 Deny from all
 </Files>
</Directory>
限制针对php文件的解析,对于*.php.*这种文件,可以添加上即可。

其实还有一种方法就是将图片文件上传到一个单独的文件夹,给一个二级的域名,这样不给这个虚拟站点解析权限。目前很多网站是采用的这种方式。
关闭虚拟主机的php解析:
<VirtualHost code.neeao.com>
...
 <Files ~ ".php">
 Order allow,deny
 Deny from all
 </Files>
</VirtualHost>
目录
相关文章
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
1105 1
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
431 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
1004 7
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
305 4
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
378 4
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
268 2
|
存储 消息中间件 druid
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
408 1
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
366 1
|
存储 Apache 开发工具
apache的主要目录结构及常见的配置选项的详细说明(图例展示)
apache的主要目录结构及常见的配置选项的详细说明(图例展示)
675 1
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?

热门文章

最新文章

推荐镜像

更多