Chinaunix首页 | 论坛 | 博客
  • 博客访问: 394503
  • 博文数量: 42
  • 博客积分: 1181
  • 博客等级: 少尉
  • 技术积分: 602
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-28 22:19
文章分类

全部博文(42)

文章存档

2012年(42)

分类: 网络与安全

2012-05-27 23:25:27

轉自 

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

 

Windowsweb目录的设置,脚本可以执行的仅仅给web匿名账户读取文件的权限,用户可以上传的目录不给其执行权限。这样即使web程序有问题,就算上传了webshell也无法执行的。

 

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

 

限制某一个目录针对php的解析方法之一,昨天在FreeBSD上测试可用。

httpd.conf配置文件中,搜索Directory节点,添加新的节点;


点击(此处)折叠或打开

  1. <Directory "/www/home/upload">

  2. AddType text/html .php

  3. </Directory>

php文件解析为html,浏览者看到的是自己的源码了。
刚才又找到一种方法,关闭路径/www/home/uploadphp解析:


点击(此处)折叠或打开

  1. <Directory "/www/home/upload">

  2. <Files ~ ".php">

  3. Order allow,deny

  4. Deny from all

  5. </Files>
  6. </Directory>


限制针对php文件的解析,对于*.php.*这种文件,可以添加上即可。

其实还有一种方法就是将图片文件上传到一个单独的文件夹,给一个二级的域名,这样不给这个虚拟站点解析权限。目前很多网站是采用的这种方式。

关闭虚拟主机的php解析:

点击(此处)折叠或打开

  1. <VirtualHost code.neeao.com>

  2. ...
  3. <Files ~ ".php">

  4. Order allow,deny
  5. Deny from all
  6. </Files>
  7. </VirtualHost>

阅读(1733) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~