2016-03-03 77 views
0

我有一個ASP.net網頁,允許用戶更改其密碼例外。目前,當用戶在以「#sign」結尾的表單字段中創建新密碼時,會引發服務器錯誤,指出從客戶端檢測到潛在危險的request.form值。我做了一些研究,發現這是因爲它認爲這是一個MySQL評論,它試圖忽略「#號」之後的所有代碼。例如,用戶可以輸入密碼,例如ABC#&但不是ABC &#。ASP.NET忽略了潛在的危險請求

有什麼我可以把我的代碼我的asp.net頁面上,如在標題行等,以防止服務器認爲這是一個SQL注入?我後面的代碼中的所有SQL都使用參數,所以我現在不擔心SQL注入。我只是希望每個用戶都能夠在他們的密碼中包含任何可能的字符組合。感謝您的任何見解!

+0

你應該也有XSS(跨站腳本)有關。您收到的警告類型旨在防止許多注入類型的攻擊。您可以在IDE中關閉這些類型的限制(我不得不研究如何這樣做,因爲我不記得手邊);不過,由於您禁用了安全防範措施,因此我不鼓勵這樣做。如果我能弄清楚如何關閉警告,我會發佈一個答案。哦,順便說一下,你不會把任何東西放在你的ASP.Net頁面上來繞過這個;相反,您需要在表單發佈到的代碼中禁用此預防措施。 –

+0

這有助於一堆,非常感謝! – jings0824

回答

0

看看這篇文章從微軟,如果這是你真正想要實現的東西:https://msdn.microsoft.com/en-us/library/hh882339(v=vs.110).aspx

文中提到,你可能需要修改你的web.config包括以下設置:

<system.web> 
<httpRuntime requestValidationMode="2.0" /> 
</system.web> 

<configuration> 
<system.web> 
<pages validateRequest="false" /> 
</system.web> 
</configuration> 

或單個頁面:

<@ Page validateRequest="false" %> 

注意,這些配置可根據您正在使用的.NET項目類型而異。我提到的文章有更多的信息。我嚴格引用了該來源。