UrlScan 和請求過濾長 url

UrlScan 和請求過濾長 url

我們的Windows/IIS 7.5環境配置為網址掃描IIS 請求過濾。我們一直面臨長網址的問題。

/MyWeb/TestFW/prweb/Servelt1/ZsvSk3vV8PtgJEa4_x3fiQ[[*/!MyWebApp/webwb/desktop_domainsuffix_1819019784.js!yui_13833664524!desktopwrapper_12997951049!automationscripts_1864420987!ui_jquery_1796787788!desktopwrapper_12997951049!automationscripts_1864420987!ui_jquery_1796787788!

注意:我修改了 url,但這就是結構,如果我放入記事本中,它大約是 880 位元組。

UlrScan.ini文件具有請求限制部分的所有預設配置:

MaxAllowedContentLength=30000000
MaxUrl=260
MaxQueryString=2048

IIS的請求過濾也已啟用並且具有預設值:

<security>
   <requestFiltering>
    <requestLimits
       maxAllowedContentLength="30000000"
       maxUrl="4096"
       maxQueryString="2048" 
                  />
  </requestFiltering>
  </security>

我運行了測試,我在帖子頂部提供的 URL 失敗,出現 403 錯誤。 URL 是 880 字節,因此,如果請求過濾優先,它不應該失敗,所以我假設網址掃描執行時不考慮 IIS 的請求限制。

我多次要求 IIS 管理員提供 IIS 日誌,無論共享什麼日誌,我都只看到 403。

那我的觀察正確嗎?對於這種設置,哪個配置優先?是UrlScan還是IIS的請求過濾?

我很想知道是否有一個選項可以使請求過濾優先於網址掃描設置,因為請求過濾在應用程式層級之前是可自訂的,而 as 則UrlScan.ini只能在網站層級之前自訂。

而且,根據 IIS 文檔,網址掃描IIS 的請求過濾功能正在被納入其中,那麼為什麼 max url 的預設值之間存在巨大差異呢?urlscan.iniIIS 的請求過濾中分別有260 位元組和 4096 位元組。

答案1

UrlScan 在請求到達 IIS 請求過濾模組之前停止請求。理想且建議的解決方案是停用 UrlScan 並在 IIS 7 及更高版本上單獨使用 IIS 請求過濾模組,IIS 7.5 中的此模組具有 urlscan 模組的所有功能,因此沒有技術原因不停用。但由於我們的管理員對此不滿意,我們採用了以下方法。將 urlscan 模組中的 maxUrl 增加到 4096,以允許較長的請求。請求過濾模組可以在預設網站層級或全域伺服器層級配置,也可以在單一應用程式層級配置。因此,預設網站層級urlScan 保留為460 個字符,適用於所有應用程序,在我的應用程式中,請求過濾的maxUrl 設定為4096。 ,我的應用程式具有更長的長度來滿足冗長的請求。

謝謝。

相關內容