2011年10月11日 星期二

ASP.NET MVC 使用Glimpse監測網站的一舉一動 2


上篇文章「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的設定就可以,

<glimpse enabled="false" loggingEnabled="true" />
把原本enabled=”true” 改成 enabled=”false” 就可以。

 

glimpse追蹤偵測頁面的AJAX

這邊補充一下有關glimpse追蹤偵測頁面AJAX執行的畫面,下圖是第一次AJAX的執行,

image

下圖是頁面上的第二次AJAX的執行,

image

所以利用glimpse來追蹤偵測頁面AJAX的執行也是相當方便。

 

參考連結:

glimpse - Document

Blog of glimpse

glimpse @ CodePlex

glimpse @ GitHub

 

以上

沒有留言:

張貼留言

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。