請大家仔細看,仔細研究完美的方案
我這里說的windows 開的全能空間是指至少同時支持asp,php,.net的安全的虛擬主機空間!
大家都知道開設安全的ASP,PHP只需要同時給每個站點設置獨立的GUEST組的匿名用戶訪問權限,然后在給其目錄設置相應的權限,即可達到一定程度的安全,也能限制fso的使用權限,這個方案應該是大多數服務器管理員常用的方法!也應該是目前所有虛擬主機常用的方法!但是按照此方法開通支持asp.net的空間,則會出現NET程序無法運行的情況,因為NET使用的訪問策略與其他腳本是不一樣的,NET的訪問需要有aspnet_wp.exe訪問某ASP.net文件的權限! 一個目錄如果具有 administrators組(完全),system組(完全) ,GUSET組某匿名用戶(完全),這樣的訪問權限,aspnet_wp.exe當然是訪問不到了.因為運行aspnet_wp.exe 的是USER組的成員,前面講到的那個目錄沒有user組的訪問權限,肯定是不行的!這樣很多朋友為了能使空間支持ASP.NET 就把空間的的訪問權限又加上了一個USER組(讀,運行),這樣的權限! 這樣能運行net程序是沒問題的,(因為運行aspnet_wp.exe的用戶就屬于USER組)安全不安全咱們暫且不討論,大家想一下現在aspnet_wp.exe目前只對這個目錄具有(讀,運行)的權限,并不包含寫入和修改的權限,所以如果是asp.net的數據庫網站是無法正常運行的,因為無法對數據庫進行添加刪除和修改!話又說回來,其實這樣也是不安全的,大家可以嘗試從另外一個站點拿一個ASP木馬,直接訪問剛才設置的目錄,看是不是能讀取里面的文件!至于有的朋友給這個目錄加USER組(完全)的權限,更是行不通的這樣別人可以很輕易的拿個asp的FSO木馬或者一個ASP.NET的IO木馬跨目錄對文件進行操作了!如果大家對自己的客戶負責,對服務器的安全負責,我想這個辦法是不好用的,也建議不要用的!那么如何使空間運行ASP.NET呢!有的人說禁止net的io訪問,其實我覺得這樣就不能發揮NET作用了,很多人也不喜歡用這樣的net虛擬主機了,如果干脆把服務器的net禁止了我想大多數人也是不愿意的!直接說一下我是怎么設置安全的NET的!
一:給每個需要支持net的站點開設獨立的池,每個池上設置單獨標識的屬于IIS_WPG組的單獨用戶!
二:按照開asp空間的辦法開設站點!1.新建屬于GUEST組的用戶,設置站點目錄的權限,設置IIS匿名用戶訪問的權限!
三:設置網站的運行池為新建的池,設置網站目錄的權限包含新建的IIS_WPG組的這個用戶!
只有以上三步才可以在IIS6.0上開設最安全的net空間, 因為iis的池最一開始就是為net設計的! 使用上面的辦法就能把net運行的權限獨立開來,即使直接訪問其他目錄也會出現拒絕訪問!因為運行net 需要的用戶(iis_wpg)也就是iis進程組的用戶已經獨立開了!設置單獨的池是已服務器的資源為代價的,但是這樣能最大限度的安全運行asp.net程序! 我想也是值得的!但是這樣的站點運行asp沒任何問題,運行php的話就會出現 403 拒絕訪問! 本人在以上面的辦法為前提下設置了N種辦法也是無法解決!
也許這個應該是windows的一個bug ,至今也沒找到完美的辦法!
所以我認為,目前網絡上所說安全的“全能”空間,是不存在的!我對幾大虛擬主機軟件做了測試,發現他們的方案也不是完美的,要么不能運行php,要么不能運行asp.net !要么開出來的就不是全能主機!
我寫這篇文章的目的,是希望落伍的朋友一起來討論,大家一起來討論一個完美的方案! 我寫的不對的地方也希望朋友指點,大家一起進步!
另外我的主機管理軟件也因為這個原因沒有發布,因為我是一個喜歡追求完美的人!如果那位有好的解決辦法,還請告知,我會修改我的算法
謝謝!
至少6位!
新聞熱點
疑難解答