2015-01-21 209 views
0

我們在運行在Windows Server 2008和IIS上的ASP.NET生產中遇到問題。未處理的ASP.NET錯誤

最近我一直在我的log4net文件(由global.asax應用程序錯誤事件生成)中顯示1000的每日錯誤。

似乎網站或外部資源正在生成502壞網關響應。

Machine: CYSERVER Framework Version: 4.0.30319.2045 
Assembly Version: 6.5.5498.37473 
Source: http://www.domain.com/Error.aspx?404;http://www.domain.com:80/%3Chtml%3E%3Chead%3E%3Ctitle%3E502%20Bad%20Gateway%3C/title%3E%3C/head%3E%3Cbody%20bgcolor= 
Exception: System.Web.HttpRequestValidationException (0x80004005): A potentially dangerous Request.RawUrl value was detected from the client (="/ 

我也啓用IIS日誌,試圖找到錯誤的根源:

2015-01-21 09:39:01 W3SVC2 CYSERVER 62.40.246.26 GET /<html><head><title>502+Bad+Gateway</title></head><body+bgcolor= - 80 - 5.28.182.46 
    HTTP/1.1 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/39.0.2171.95+Safari/537.36 ASP.NET_SessionId=l0lfplkbzy42gbt0lktetg5b;+__utma=269413869.1923211166.1367695371.1418038854.1421229175.11;+__utmc=269413869;+__utmz=269413869.1421229175.11.11.utmcsr=TF|utmccn=(not%20set)|utmcmd=pop|utmctr=Register1_aspx;+_TrackIt 
    http://www.domain.com/Register1.aspx?affiliateId=1 
    www.domain.com 302 0 0 449 915 137 

如何找出源的任何提示?

回答

0

這很明顯是說Register1.aspx是源代碼。在此頁面上驗證和消毒輸入。使用HTML編碼相同。它正在檢測請求中收到的輸入中的特殊字符,並對跨站點腳本攻擊有疑問。通過輸入消毒來解決您的問題,並且不要使用ValidateRequest =「false」解決方案。欲瞭解更多信息,請查詢https://www.owasp.org/index.php/ASP.NET_Request_Validation

您也可以編寫擴展驗證程序來檢查哪個參數失敗並且記錄相同,如果您不確定其他頁面有什麼問題。

+0

你基本上說有人試圖向Register1.aspx(某種「黑客」)提交無效值,但錯誤來自不同的IP(來自我的本地國家),我不相信這是一種攻擊。頁面上的某個外部資源(javascript或其他)是否有可能無法加載並生成這些錯誤? – RuSh 2015-01-21 13:16:23

+0

如果它在您的代碼中,那麼您提到的每個請求都應該出錯。如果任何第三方應用程序正在提交數據,那麼格式不正確。消毒你的輸入。 http://www.asp.net/whitepapers/request-validation – Amit 2015-01-21 13:23:27