# ====> 紅色字體 -特指煮酒個人所見。加粗則為需要重點注意。 #
# ====> 藍色加粗 -特指與本文相關人員,包括參與修正的朋友。 #
# ====> 煮酒品茶 -Http://cwtea.blog.51cto.com #
#----------------------------------------------------------#
煮酒品茶:上次寫的80安全-WEB服務器安全淺淡! 【第一次編輯】 受到的關注還蠻多的,那個時候只是一個單純的想法而已,我想更多的應該是我們把它具體運用到實踐當中去,或多或少你可以考慮的。
首先設想:有什么樣的需要我們就會有什么樣的程序,也會有何種層次的極別。安全或許一個層次的堅守并不代表全局的安全,而全局的安全則是由很多個層次來構成的,所以技術的積累是很重要的,量到一定程序就會產(chǎn)生質變。
煮酒品茶:一個程序從不同的角度上看會有不同的結果,所以可能和你所想要的有點偏差。我只是把我個人的想法進行一個表述,并希望通過實踐來得出它是可行的,也不希望有誤倒讀者的意思。自己衡量這個標準。
攻擊情形假設:
1、非法用戶通過非法手段得到權限并進行入侵攻擊
2、上傳程序到網(wǎng)站目錄,由于用戶所獲得的權限為www,而www的權限是在整個程序目錄,所以活動目錄為主程序目錄。
3、上傳X馬到主程序并得到解釋后進行進一步提權。(這時已經(jīng)可以得到全部網(wǎng)站數(shù)據(jù)了)
一般的web程序是不會老是變動的,而且會有一個固定的框架。
1、所有主程序目錄(web主程序)
2、圖片上傳目錄以及資料上傳目錄
3、有時候會有cache的目錄存在
4、數(shù)據(jù)庫會存儲相當可觀的數(shù)據(jù),并進行實時調用(此為表述)
根據(jù)我們在web服務器安全淺談上進行理論操作,即為可寫不可讀,可讀不可寫。(此處指的是動態(tài)語言)但有時候環(huán)境不得不讓你可讀而且可寫,比如我們的cache目錄,或者你可以放到別的服務器上,讓他們分開。更或者......
下為針對上方需求所設想:
1、此項為可讀不可寫,因此為予權限為www用戶可讀禁止寫入。
2、此項為可寫不可讀,測試過不給讀權限也可以調用圖片。(或者采用3的方法)
3、此項為要可寫也要可讀,那么我們的方法是利用web服務器程序進行禁止解釋
4、此為數(shù)據(jù)庫安全。與本題無關。
然后我們針對以上方案進行一個實例的測試。
程序目錄結構如下:
- [root@bogon data]# tree
- .
- |-- cache
- | `-- index.htm
- |-- image
- | `-- 220903335.jpg
- |-- index.php
- `-- upload
- `-- test.rar
Cache為緩存,image為圖片上傳目錄,upload為文件上傳目錄,當前目錄為主站程序目錄。
先進行測試訪問。
三個都是可以被web程序所解釋的。
設置全站權限:
煮酒品茶:x是代表可執(zhí)行也就是web程序nginx可執(zhí)行。這樣看就方面看多了。
- [root@bogon data]# ll
- total 16
- drwx------ 2 www www 4096 Jun 5 03:22 cache
- drwx------ 2 www www 4096 Jun 5 03:22 image
- -rwx------ 1 www www 21 May 31 02:13 index.php
- drwx------ 2 www www 4096 Jun 5 03:22 upload
修改Nginx.conf配置需求
重啟nginx
最終結果,清緩存。
應用程序正常業(yè)務
靜態(tài)文件目錄非法上傳非法文件。
煮酒品茶:主程序只給可讀可執(zhí)行的命令。所以一般情況下無法被寫入。我們的安全等級提高了一點點。配合其它的手段使安全得到更多的保障!
附:nginx.conf 禁止解釋的代碼,學過正則的都看的懂。
-------------------------------------------------
- location ~* ^/(cache|image|upload)/.*\.(php|php5|PHP|PHP5)$
- {
- deny all;
- }
--------------------------------------------------------