上篇文章「ASP.NET MVC 使用Glimpse監測網站的一舉一動 1」,說明了什麼是Glimpse以及如何透過NuGet安裝,另外也簡短的說明Glimpse的內容與如何使用Trace功能,然而與ELMAH所遇到的問題是一樣的,那就是預設安裝後,都是可以匿名瀏覽,對於網站的安全性來說是個相當大的威脅,尤其是Glimpse的Config,會把Web.Config的所有資訊都完整呈現,所以這一篇文章就要來說明如何讓Glimpse在登入後才可以使用。
更改Web.Config的glimpse區段
在Glimpse所提供的readme.txt中就已經有說明如何修改,讓啟用Glimpse是必須要登入後才可以,7
<glimpse enabled="true" loggingEnabled="true" />
可以加上loggingEnabled=”true”,但是這樣還是不夠,必須要再進一步去阻止匿名使用者直接進入,所以修改如下:
<glimpse enabled="true" loggingEnabled="true" /><location path="Glimpse.axd"><system.web><authorization><deny users="*" /></authorization></system.web></location>
如果說要再進一步防護的話,可以指定哪些使用者才能使用或是限定哪些角色權限的使用者才能夠使用,於是我的修改如下:
<glimpse enabled="true" loggingEnabled="true" /><location path="Glimpse.axd"><system.web><authorization><allow roles="Admin"/><deny users="*" /></authorization></system.web></location>
如此一來就阻止匿名使用者使用Glimpse功能,而且也只限定用有Admin角色權限的使用者才能夠使用,不是Admin角色的使用者進入「http://你的網址/Glimpse.axd」時就會直接導回首頁。
詳細的Glimpse Section的設定,我建議要詳讀官網的說明:
glimpse – Document – Configuration
http://getglimpse.com/Help/Configuration
另外要說明的是,如果你只希望在開發環境去啟用glimpse的功能,而在正式環境不希望去啟用glimpse時,並不需要上線前把glimpse給移除,只需要去更改glimpse Section的設定就可以,
把原本enabled=”true” 改成 enabled=”false” 就可以。<glimpse enabled="false" loggingEnabled="true" />
glimpse追蹤偵測頁面的AJAX
這邊補充一下有關glimpse追蹤偵測頁面AJAX執行的畫面,下圖是第一次AJAX的執行,
下圖是頁面上的第二次AJAX的執行,
所以利用glimpse來追蹤偵測頁面AJAX的執行也是相當方便。
參考連結:
以上
沒有留言:
張貼留言