我在ASP.NET 3.5這需要以文本格式一些輸入,並在SQL Server 2005數據庫保存它創建了一個網站。數據庫字段爲varcahar(50)
。特殊符號不能存儲在SQL Server從ASP.NET 3.5
但是,如果在文本框中數據包含了諸如<特殊符號,我不能這樣做,>,#,@ ,.
它生成顯示安全錯誤的客戶端腳本錯誤。
對於腳本我正在使用JavaScript。
我在ASP.NET 3.5這需要以文本格式一些輸入,並在SQL Server 2005數據庫保存它創建了一個網站。數據庫字段爲varcahar(50)
。特殊符號不能存儲在SQL Server從ASP.NET 3.5
但是,如果在文本框中數據包含了諸如<特殊符號,我不能這樣做,>,#,@ ,.
它生成顯示安全錯誤的客戶端腳本錯誤。
對於腳本我正在使用JavaScript。
正如@約翰諾蘭寫道,這極有可能是ASP.NET內置的請求驗證的結果。
您必須關閉內置的驗證和滾你自己:
您可以在頁級別關閉驗證:
<%@ Page validateRequest="false" %>
或(在web.config中)應用層面:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
不要忘記對應用程序的所有輸出進行編碼,特別是在關閉請求驗證之後。
檢出this article關於這個問題。
爲了保護您的應用程序,你必須遵循常見的Web應用安全準則和他人之間編碼直接或間接產生的用戶,以避免跨站點腳本(XSS)所有的輸出。微軟提供了一個Anti XSS library來簡化這一點。 OWASP有一個XSS預防cheat sheet。
這聽起來並不像<>字符。嘗試關閉頁面指令中的validaterequest。警告:雖然這將允許惡意內容。最好對輸入進行編碼。
數據庫不關心符號是什麼。問題將出現在您的腳本或您的代碼隱藏中。你可以發佈一些代碼嗎? – 2010-01-19 12:57:11
你正確的概率是與腳本 – Swati 2010-01-20 12:41:05