知识学堂
  • ·联系电话:+86.023-75585550
  • ·联系传真:+86.023-75585550
  • ·24小时手机:13896886023
  • ·QQ 咨 询:361652718 513960520
当前位置 > 首页 > 知识学堂 > 常见技术问题
web主程序安全的一点点方法
更新时间:2012-06-08 | 发布人:本站 | 点击率:654
#----------------------------------------------------------# 

# ====> 红色字体 -特指煮酒个人所见。加粗则为需要重点注意。 #
# ====> 蓝色加粗 -特指与本文相关人员,包括参与修正的朋友。 #
# ====> 煮酒品茶 -Http://cwtea.blog.51cto.com          #
#----------------------------------------------------------#

 煮酒品茶:上次写的80安全-WEB服务器安全浅淡【第一次编辑】 受到的关注还蛮多的,那个时候只是一个单纯的想法而已,我想更多的应该是我们把它具体运用到实践当中去,或多或少你可以考虑的。

首先设想:有什么样的需要我们就会有什么样的程序,也会有何种层次的极别。安全或许一个层次的坚守并不代表全局的安全,而全局的安全则是由很多个层次来构成的,所以技术的积累是很重要的,量到一定程序就会产生质变。

煮酒品茶:一个程序从不同的角度上看会有不同的结果,所以可能和你所想要的有点偏差。我只是把我个人的想法进行一个表述,并希望通过实践来得出它是可行的,也不希望有误倒读者的意思。自己衡量这个标准。

攻击情形假设:

1、非法用户通过非法手段得到权限并进行入侵攻击

2、上传程序到网站目录,由于用户所获得的权限为www,而www的权限是在整个程序目录,所以活动目录为主程序目录。

3、上传X马到主程序并得到解释后进行进一步提权。(这时已经可以得到全部网站数据了)

一般的web程序是不会老是变动的,而且会有一个固定的框架。

1、所有主程序目录(web主程序)

2、图片上传目录以及资料上传目录

3、有时候会有cache的目录存在

4、数据库会存储相当可观的数据,并进行实时调用(此为表述)

根据我们在web服务器安全浅谈上进行理论操作,即为可写不可读,可读不可写。(此处指的是动态语言)但有时候环境不得不让你可读而且可写,比如我们的cache目录,或者你可以放到别的服务器上,让他们分开。更或者......

下为针对上方需求所设想:

1、此项为可读不可写,因此为予权限为www用户可读禁止写入。

2、此项为可写不可读,测试过不给读权限也可以调用图片。(或者采用3的方法)

3、此项为要可写也要可读,那么我们的方法是利用web服务器程序进行禁止解释

4、此为数据库安全。与本题无关。

然后我们针对以上方案进行一个实例的测试。

程序目录结构如下:


  1. [root@bogon data]# tree 
  2. |-- cache 
  3. |   `-- index.htm 
  4. |-- image 
  5. |   `-- 220903335.jpg 
  6. |-- index.php 
  7. `-- upload 
  8.     `-- test.rar 

Cache为缓存,image为图片上传目录,upload为文件上传目录,当前目录为主站程序目录。

先进行测试访问。

三个都是可以被web程序所解释的。

 

设置全站权限:

煮酒品茶:x是代表可执行也就是web程序nginx可执行。这样看就方面看多了。


  1. [root@bogon data]# ll 
  2. total 16 
  3. drwx------ 2 www www 4096 Jun  5 03:22 cache 
  4. drwx------ 2 www www 4096 Jun  5 03:22 image 
  5. -rwx------ 1 www www   21 May 31 02:13 index.php 
  6. drwx------ 2 www www 4096 Jun  5 03:22 upload 

修改Nginx.conf配置需求

  1. location ~* ^/(cache|image|upload)/.*\.(php|php5|PHP|PHP5)$ 
  2. deny all; 

重启nginx

最终结果,清缓存。

应用程序正常业务

 

静态文件目录非法上传非法文件。

 

煮酒品茶:主程序只给可读可执行的命令。所以一般情况下无法被写入。我们的安全等级提高了一点点。配合其它的手段使安全得到更多的保障!

附:nginx.conf 禁止解释的代码,学过正则的都看的懂。

-------------------------------------------------


  1. location ~* ^/(cache|image|upload)/.*\.(php|php5|PHP|PHP5)$ 
  2. deny all; 

--------------------------------------------------------

分享到: QQ空间 新浪微博 开心网 人人网