我們有一個具有搜索表單的Web應用程序,允許用戶輸入一些文本,並根據他們輸入的內容限制結果。最近我們開始收到以下錯誤:System.Web.HttpRequestValidationException:從機器人的客戶端檢測到潛在危險的Request.Form值?
System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl00$ContentPlaceHolder1$results_search="...967.hcpm, <a href="http://www....").
此錯誤是發生在整個一天,每天,這似乎是從一個機器人來了,看着錯誤好像機器人是將HTML AHREF鏈接到搜索字段並嘗試搜索,導致錯誤。
周圍搜索後,我看到有中,我們可以解決這個問題,要麼使用jQuery或轉動validateRequest爲false,然後在頁面後面的代碼中使用的HTMLEncode兩種方式。有誰知道,如果jQuery代碼將在機器人上工作?我不確定機器人如何做到這一點,如果它擊中頁面並單擊按鈕或以其他方式發送請求,因爲按鈕單擊是導致回發觸發搜索的原因,所以我們使用POST,因此無法通過發送url到搜索頁面,頁面只是回發到自己,在回發時是搜索完成時。
只是忽略或阻止機器人?爲什麼你會考慮禁用驗證(也許我錯過了什麼)? –
禁用validateRequest將結束添加行到您的日誌並給bot更多的自由。不是我所說的雙贏。 – lboshuizen
我們使用ELMAH來接收錯誤,所以它充斥着我們的收件箱,這就是爲什麼我們想到了這個問題,否則我們會忽略它。不想停止ELMAH,因爲我們可能會錯過真正的錯誤。 – Paritosh