IIS網站屬性的“主目錄”選項卡下,有一個執行許可權的設定。網站或目錄的執行許可權應該如何設定?
IIS中執行許可權
IIS中的執行許可權有如下三種:
1、無許可權
無許可權是指不能執行動態指令碼程式。說得更明白一點就是像asp、php、asp.net、jsp等均不能執行,只有像html這樣的頁面可以通過IIS來訪問。
2、純指令碼
像ASP、PHP、JSP等伺服器端指令碼程式需要開啟純指令碼許可權。
3、純指令碼和應用程式
除了可以執行指令碼之外還可以執行可執行檔。你有沒有遇到一個網頁的尾碼是.dll?經常看到微軟就這麼幹。這就是是可執行檔,有exe或dll。
網站和目錄設定執行許可權
明白了IIS三種執行許可權就可以根據不同的情況來設定了,大多數網站都是ASP(ASPX)、PHP、JSP等編寫的,一般要開啟純指令碼執行許可權,但不要開啟應用程式許可權。
上面講了網站的執行使用權限設定,下面還得說一下目錄的執行許可權。單個目錄也可以設定與網站不一樣的執行許可權。比如我們一個用php寫好的網站,我給整個網站“純指令碼”的許可權。但網站下面一個upload目錄,這個目錄裡面是沒有php程式,所以可以給一個“無”的許可權。
在IIS中,右鍵點擊左邊列表中的upload目錄,選擇屬性,在“目錄”選項卡中將“執行許可權”一項設定為“無”即可。
設定執行許可權的意義
設定執行許可權有著重要的安全意義。對於整個網站來講,我們給的執行許可權不能過高(不能為了方便起見而把所有的網站都設定純指令碼和應用程式),太高了就會有安全性的問題。試想一個純HTML的網站,你給它“無”的許可權,它裡面任何指令碼、木馬都執行不了,安全性大大提高。
而對於一些沒有程式檔案的目錄(如前面提到的upload),堅決不能給他指令碼運行許可權,否則駭客就可以利用網站的漏洞將木馬傳入到這些目錄中,並且可以執行,從而實施破壞。
也許大家要問了,他傳到upload裡面不能運行,那他可以傳到其它目錄啊,駭客又不傻!是的,要解決這個問題,就需要瞭解NTFS許可權了。假設我們整個網站只有upload目錄是上傳用的,可以寫入新的檔案,其它目錄都是程式目錄,一旦上傳後,就不變了。那麼我們就可以將其它目錄設定為唯讀許可權,這樣駭客就不能上傳檔案到其它了目錄了。這樣的結果就是,要上傳只能上傳到upload,而上傳到upload後又不能執行,所以,網站安全了