配置Apache防止webshell上传


关键词

webshell 入侵 httpd

摘要

“web”的含义是需要服务器开放web服务,要让用户可以访问到可访问的文件,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为匿名用户(入侵者)通过网站端口对网站服务器的某种程度上操作的权限。
“web”的含义是需要服务器开放web服务,要让用户可以访问到可访问的文件,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为匿名用户(入侵者)通过网站端口对网站服务器的某种程度上操作的权限。
简单理解:webshell就是一个web的页面,但是它的功能非常强大可以获得一些管理员不希望你获得的权限,比如执行系统命令、删除web页面、修改主页等。
在Linux服务器的web应用中,经常需要上传文件到服务器上。不管是php的也好,jsp的也好,如果web程序对于上传检查不严格,可导致黑客上传webshell,对服务器安全威胁自不用说了。对于web开发对文件上传的限制,这里就不说了,这里仅仅来讨论服务器如何设置才防止上传的webshell执行。
Windows下web目录的设置,脚本可以执行的仅仅给web匿名账户读取文件的权限,用户可以上传的目录不给其执行权限。这样即使web程序有问题,就算上传了webshell也无法执行的。
在Linux情况下,本来以为去除上传目录的执行权限后,就ok了的。通过chmod去除后,导致无法上传,比较郁闷。
限制某一个目录针对php的解析方法之一,测试可用。
在httpd.conf配置文件中,搜索Directory节点,添加新的节点;
 
<Directory "/www/home/upload">
AddType text/html .php
</Directory>

将php文件解析为html,浏览者看到的是自己的源码了。

另一种方法,关闭路径/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>

 

文章的版权

洪哥写文章很苦逼,如果本文对您略有帮助,点击感兴趣的广告支持洪哥!万分感谢!本文属于“洪哥笔记”原创文章,转载请注明来源地址:配置Apache防止webshell上传:http://www.splaybow.com/post/apache-stopwebshell.html

关注与收藏

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D


« 设置Apache支持shtml(SSI) apache增加mod_rewrite模块 »

相关文章:

Apache2.4目录访问控制指令require  (2015/6/22 10:47:21)

Win下apache绑定域名  (2014/6/3 11:36:40)

apache增加mod_rewrite模块  (2014/3/29 11:54:43)

配置Apache防止webshell上传  (2014/3/27 11:09:34)

设置Apache支持shtml(SSI)  (2014/2/12 9:49:01)

Apache使用通用日志格式记录日志  (2014/1/27 20:55:04)

Apache中为什么不使用.htaccess文件?  (2014/1/15 14:48:33)

Apache中的.htaccess文件  (2014/1/15 14:40:52)

Apache绑定IP绑定端口  (2014/1/8 17:50:59)

Apache开启gzip  (2013/12/29 21:23:26)