網站安全中,對目錄的執行權限是非常敏感的,一般來說,可以寫入的目錄是不能夠擁有腳本的執行權限的,像DedeCMS系統,可寫入的有兩個目錄 data、uploads,data目錄主要是基本配置文件和緩存數據,uploads則是附件上傳保存的目錄,本篇將針對不同服務器環境來介紹如何取消 這兩個目錄的執行權限,當然我們也建議用戶其他一些生成純靜態html的目錄,擁有可寫入權限的也統統去除執行權限,這樣系統會更為安全。
Windows下的IISIIS6.0取消服務器主機空間目錄腳本的執行權限
打開IIS中站點,在站點uploads目錄、data目錄以及靜態html生成目錄點擊右鍵,菜單中選擇“屬性”,在目錄屬性面板選擇執行權限為“無”即可。(如圖1)
IIS7取消服務器主機空間目錄腳本的執行權限
網站安全中,對目錄的執行權限是非常敏感的,一般來說,可以寫入的目錄是不能夠擁有腳本的執行權限的,像DedeCMS系統,可寫入的有兩個目錄 data、uploads,data目錄主要是基本配置文件和緩存數據,uploads則是附件上傳保存的目錄,本篇將針對不同服務器環境來介紹如何取消 這兩個目錄的執行權限,當然我們也建議用戶其他一些生成純靜態html的目錄,擁有可寫入權限的也統統去除執行權限,這樣系統會更為安全。
IIS7中的步驟
第一步呢,我們在IIS的左側選中該目錄,切換到功能視圖
第二步呢,打開“處理程序映射”功能
第三步呢,打開右側的“編輯功能權限”,將“腳本”這一項取消掉即可
IIS7也類似于IIS6.0,選擇站點對應的目錄,data、uploads及靜態html文件目錄,雙擊功能試圖面板中的“處理程序映射”(如圖2)
(圖2)
在“編輯功能權限……”中,我們直接去除腳本的執行權限即可。(如圖3)
綜上所述:
若想讓指定目錄只有讀取權限,只要在目錄中放置一個名為 “web.config“,內容為
1
2
3
4
5
6
|
<? xml version = "1.0" encoding = "UTF-8" ?> < configuration > < system.webServer > < handlers accessPolicy = "Read" /> </ system.webServer > </ configuration > |
的(配置)文件即可。
這樣,在訪問該目錄下的 asp、php等可執行文件時,IIS7就會輸出如下錯誤提示:
HTTP 錯誤 401.3 - Unauthorized
由于 Web 服務器上此資源的訪問控制列表(ACL)配置或加密設置,您無權查看此目錄或頁面。
iis7.5批量刪除 處理程序映射的方法
因為服務器目前只需要支持php,那么就可以把asp,asp.net都刪除了。iis7.5比較好的一點就是全部通過根目錄的web.config控制,下面提供這個文件,大家就可以參考一下了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<? xml version = "1.0" encoding = "UTF-8" ?> < configuration > < system.webServer > < handlers > < remove name = "TRACEVerbHandler" /> < remove name = "OPTIONSVerbHandler" /> < remove name = "WebServiceHandlerFactory-ISAPI-2.0-64" /> < remove name = "WebServiceHandlerFactory-ISAPI-2.0" /> < remove name = "WebServiceHandlerFactory-Integrated" /> < remove name = "WebAdminHandler-Integrated" /> < remove name = "TraceHandler-Integrated" /> < remove name = "SSINC-stm" /> < remove name = "SSINC-shtml" /> < remove name = "SSINC-shtm" /> < remove name = "SimpleHandlerFactory-ISAPI-2.0-64" /> < remove name = "SimpleHandlerFactory-ISAPI-2.0" /> < remove name = "SimpleHandlerFactory-Integrated" /> < remove name = "SecurityCertificate" /> < remove name = "PageHandlerFactory-ISAPI-2.0" /> < remove name = "PageHandlerFactory-Integrated" /> < remove name = "HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" /> < remove name = "HttpRemotingHandlerFactory-soap-ISAPI-2.0" /> < remove name = "HttpRemotingHandlerFactory-soap-Integrated" /> < remove name = "HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" /> < remove name = "HttpRemotingHandlerFactory-rem-ISAPI-2.0" /> < remove name = "AXD-ISAPI-2.0-64" /> < remove name = "HttpRemotingHandlerFactory-rem-Integrated" /> < remove name = "AXD-ISAPI-2.0" /> < remove name = "AssemblyResourceLoader-Integrated" /> < remove name = "PageHandlerFactory-ISAPI-2.0-64" /> < remove name = "ASPClassic" /> </ handlers > </ system.webServer > </ configuration > |
其實就是通過 <remove name="" />進行刪除的,如果想恢復指定的某個映射,可以刪除對應的名稱即可。