我在IIS7和.NET 4.5.1上有一個Web Forms網站,我希望使用Microsoft的Request驗證來驗證http請求。 validateRequest和requestValidationMode的web.config默認值應該分別爲「true」和「4.0」,這應該是我想要的(爲了以防萬一,我試圖指定它們)。validateRequest = true和requestValidationMode =「4.0」讓html通過
<pages validateRequest="true">
<httpRuntime requestValidationMode="4.0" />
出於某種原因,當我輸入一個HTML標籤(試過< SCRIPT>和<一>)的形式,然後提交它,我得到預期的有潛在危險的請求錯誤,但標籤被保存在數據庫中。爲什麼會經歷?我只是簡單地將文本框的Text值發送給我的數據庫,但我希望這個錯誤能夠阻止這種情況的發生。
當我試圖設置:
<httpRuntime requestValidationMode="2.0" />
錯誤是一樣的,但是這一次,標籤並沒有在數據庫中,這就是我想要的結束。
我想了解爲什麼較小的安全驗證模式「2.0」是唯一一個實際阻止請求通過我的情況,這似乎沒有多大意義。必須有我遺失的東西,請告訴我是否應該提供其他信息。