我在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