2010-08-26 25 views

回答

1

這是ASP.NET,防止用戶提交類似腳本塊有潛在危險的代碼的安全功能。

您可以通過設置Page指令的validateRequest屬性禁用這false

<%@ Page validateRequest="false" %> 

或在web.config中禁用它:

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

但要小心!正如我所說,這是一項安全功能!

你可以閱讀更多關於它在這裏:http://www.asp.net/learn/whitepapers/request-validation

1

你需要告訴ASP不驗證頁面上的表單值:

<%@ Page ... ValidateRequest="false"%> 

此擺脫你的錯誤,但是在後端,你需要保護自己免受惡意輸入。將所有<>字符替換爲編碼值,這樣您就不會打開自己的XSS攻擊。

1

因爲您正在傳遞「<」和「>」,其中可能包含可能的惡意數據。您需要通過要麼關閉頁面驗證:

設置頁聲明:

<%@ Page Language="C#" ValidateRequest="false" %> 

或者在web.config:

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

如果你這樣做,你需要淨化輸入嚴格!您可以通過在服務器端的編碼輸入做到這一點:

Server.HtmlEncode(TextBox1.Text) 
+0

我喜歡這個Server.HtmlEncode(TextBox1.Text),但如果我用TextBox1.Text = Server.HtmlEncode( 「」);它顯示<uju>。如何解決這個問題? – Delta 2010-08-26 23:07:31

+0

然後您使用'Server.HtmlDecode(string)'將其恢復到您想要的樣子。 – 2010-08-26 23:12:06