好友前一陣子在他的博客上發表了一篇文章《安全設置 IIS 中的權限》,在這里轉載一下,希望對大家有所幫助。

          雖然 Apache 的名聲可能比 IIS 好,但我相信用 IIS 來做 Web 服務器的人一定也不少。說實話,我覺得 IIS 還是不錯的,尤其是 Windows 2003 的 IIS 6(馬上 Longhorn Server 的 IIS 7 也就要來了,相信會更好),性能和穩定性都相當不錯。但是我發現許多用 IIS 的人不太會設置 Web 服務器的權限,因此,出現漏洞被人黑掉也就不足為奇了。但我們不應該把這歸咎于 IIS 的不安全。如果對站點的每個目錄都配以正確的權限,出現漏洞被人黑掉的機會還是很小的(Web 應用程序本身有問題和通過其它方式入侵黑掉服務器的除外)。下面是我在配置過程中總結的一些經驗,希望對大家有所幫助。

          IIS Web 服務器的權限設置有兩個地方,一個是 NTFS 文件系統本身的權限設置,另一個是 IIS 下網站->站點->屬性->主目錄(或站點下目錄->屬性->目錄)面板上。這兩個地方是密切相關的。下面我會以實例的方式來講解如何設置權限。

          IIS 下網站->站點->屬性->主目錄(或站點下目錄->屬性->目錄)面板上有:

          • 腳本資源訪問
          • 讀取
          • 寫入
          • 瀏覽
          • 記錄訪問
          • 索引資源

          6 個選項。這 6 個選項中,“記錄訪問”和“索引資源”跟安全性關系不大,一般都設置。但是如果前面四個權限都沒有設置的話,這兩個權限也沒有必要設置。在設置權限時,記住這個規則即可,后面的例子中不再特別說明這兩個權限的設置。

          另外在這 6 個選項下面的執行權限下拉列表中還有:

          • 純腳本
          • 純腳本和可執行程序

          3 個選項。

          而網站目錄如果在 NTFS 分區(推薦用這種)的話,還需要對 NTFS 分區上的這個目錄設置相應權限,許多地方都介紹設置 everyone 的權限,實際上這是不好的,其實只要設置好 Internet 來賓帳號(IUSR_xxxxxxx)或 IIS_WPG 組的帳號權限就可以了。如果是設置 ASP、PHP 程序的目錄權限,那么設置 Internet 來賓帳號的權限,而對于 ASP.NET 程序,則需要設置 IIS_WPG 組的帳號權限。在后面提到 NTFS 權限設置時會明確指出,沒有明確指出的都是指設置 IIS 屬性面板上的權限。

          例1 —— ASP、PHP、ASP.NET 程序所在目錄的權限設置:

          如果這些程序是要執行的,那么需要設置“讀取”權限,并且設置執行權限為“純腳本”。不要設置“寫入”和“腳本資源訪問”,更不要設置執行權限為“純腳本和可執行程序”。NTFS 權限中不要給 IIS_WPG 用戶組和 Internet 來賓帳號設置寫和修改權限。如果有一些特殊的配置文件(而且配置文件本身也是 ASP、PHP 程序),則需要給這些特定的文件配置 NTFS 權限中的 Internet 來賓帳號(ASP.NET 程序是 IIS_WPG 組)的寫權限,而不要配置 IIS 屬性面板中的“寫入”權限。

          IIS 面板中的“寫入”權限實際上是對 HTTP PUT 指令的處理,對于普通網站,一般情況下這個權限是不打開的。

          IIS 面板中的“腳本資源訪問”不是指可以執行腳本的權限,而是指可以訪問源代碼的權限,如果同時又打開“寫入”權限的話,那么就非常危險了。

          執行權限中“純腳本和可執行程序”權限可以執行任意程序,包括 exe 可執行程序,如果目錄同時有“寫入”權限的話,那么就很容易被人上傳并執行木馬程序了。

          對于 ASP.NET 程序的目錄,許多人喜歡在文件系統中設置成 Web 共享,實際上這是沒有必要的。只需要在 IIS 中保證該目錄為一個應用程序即可。如果所在目錄在 IIS 中不是一個應用程序目錄,只需要在其屬性->目錄面板中應用程序設置部分點創建就可以了。Web 共享會給其更多權限,可能會造成不安全因素。

          例2 —— 上傳目錄的權限設置:

          用戶的網站上可能會設置一個或幾個目錄允許上傳文件,上傳的方式一般是通過 ASP、PHP、ASP.NET 等程序來完成。這時需要注意,一定要將上傳目錄的執行權限設為“無”,這樣即使上傳了 ASP、PHP 等腳本程序或者 exe 程序,也不會在用戶瀏覽器里就觸發執行。

          同樣,如果不需要用戶用 PUT 指令上傳,那么不要打開該上傳目錄的“寫入”權限。而應該設置 NTFS 權限中的 Internet 來賓帳號(ASP.NET 程序的上傳目錄是 IIS_WPG 組)的寫權限。

          如果下載時,是通過程序讀取文件內容然后再轉發給用戶的話,那么連“讀取”權限也不要設置。這樣可以保證用戶上傳的文件只能被程序中已授權的用戶所下載。而不是知道文件存放目錄的用戶所下載。“瀏覽”權限也不要打開,除非你就是希望用戶可以瀏覽你的上傳目錄,并可以選擇自己想要下載的東西。

          例3 —— Access 數據庫所在目錄的權限設置:

          許多 IIS 用戶常常采用將 Access 數據庫改名(改為 asp 或者 aspx 后綴等)或者放在發布目錄之外的方法來避免瀏覽者下載它們的 Access 數據庫。而實際上,這是不必要的。其實只需要將 Access 所在目錄(或者該文件)的“讀取”、“寫入”權限都去掉就可以防止被人下載或篡改了。你不必擔心這樣你的程序會無法讀取和寫入你的 Access 數據庫。你的程序需要的是 NTFS 上 Internet 來賓帳號或 IIS_WPG 組帳號的權限,你只要將這些用戶的權限設置為可讀可寫就完全可以保證你的程序能夠正確運行了。

          例4 —— 其它目錄的權限設置:

          你的網站下可能還有純圖片目錄、純 html 模版目錄、純客戶端 js 文件目錄或者樣式表目錄等,這些目錄只需要設置“讀取”權限即可,執行權限設成“無”即可。其它權限一概不需要設置。

          好了,我想上面的幾個例子已經包含了大部分情況下的權限設置,其它情況根據這些例子,我想你一定可以想到該如何設置了吧。


          文章來源:http://www.cnblogs.com/wangdetian168/archive/2008/10/18/1313952.html
          posted on 2010-09-30 12:22 sanmao 閱讀(129) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 如皋市| 洛扎县| 石首市| 法库县| 手游| 湖南省| 龙海市| 汉源县| 浮山县| 东阿县| 简阳市| 隆尧县| 玉田县| 烟台市| 新邵县| 开封市| 嘉鱼县| 大方县| 南涧| 资中县| 安化县| 辉南县| 怀化市| 登封市| 乡宁县| 江川县| 和政县| 彭泽县| 麻城市| 阜阳市| 习水县| 富裕县| 楚雄市| 嫩江县| 阳江市| 吴忠市| 岳西县| 濮阳县| 蓝山县| 永川市| 天津市|