C# 特殊符号不能从ASP.NET 3.5存储在SQL Server中
我在3.5中创建了一个网站,它以文本格式接受一些输入,并将其保存在SQLServer2005数据库中 数据库字段是C# 特殊符号不能从ASP.NET 3.5存储在SQL Server中,c#,asp.net,C#,Asp.net,我在3.5中创建了一个网站,它以文本格式接受一些输入,并将其保存在SQLServer2005数据库中 数据库字段是varcahar(50) 但如果文本框中的数据包含特殊符号,如,#,@,则无法执行此操作 它生成一个显示安全错误的客户端脚本错误 对于脚本,我使用的是JavaScript。这听起来好像不喜欢字符。尝试关闭页面指令中的validaterequest。警告:这将允许恶意内容通过。最好对输入进行编码。这听起来好像不喜欢字符。尝试关闭页面指令中的validaterequest。警告:这将允许
varcahar(50)
但如果文本框中的数据包含特殊符号,如,#,@,则无法执行此操作
它生成一个显示安全错误的客户端脚本错误
对于脚本,我使用的是JavaScript。这听起来好像不喜欢字符。尝试关闭页面指令中的validaterequest。警告:这将允许恶意内容通过。最好对输入进行编码。这听起来好像不喜欢字符。尝试关闭页面指令中的validaterequest。警告:这将允许恶意内容通过。最好对输入进行编码。正如@John Nolan所写,这很可能是ASP.NET内置请求验证的结果 您必须关闭内置验证,并启动自己的验证: 您可以在页面级别关闭验证:
<%@ Page validateRequest="false" %>
或在应用程序级别(在web.config中):
不要忘记对应用程序的所有输出进行编码,尤其是在关闭请求验证之后
看看这个主题
为了保护您的应用程序,您必须遵循常见的Web应用程序安全指南,并对用户直接或间接生成的所有输出进行编码,以避免跨站点脚本(XSS)。微软已经提供了一个简单的解决方案。OWASP具有XSS防护。正如@John Nolan所写,这很可能是ASP.NET内置请求验证的结果 您必须关闭内置验证,并启动自己的验证: 您可以在页面级别关闭验证:
<%@ Page validateRequest="false" %>
或在应用程序级别(在web.config中):
不要忘记对应用程序的所有输出进行编码,尤其是在关闭请求验证之后
看看这个主题
为了保护您的应用程序,您必须遵循常见的Web应用程序安全指南,并对用户直接或间接生成的所有输出进行编码,以避免跨站点脚本(XSS)。微软已经提供了一个简单的解决方案。OWASP具有XSS预防功能。数据库不关心符号是什么。问题将出现在您的脚本或代码中。你能发布一些代码吗?没错,问题在于脚本,数据库不在乎符号是什么。问题将出现在您的脚本或代码中。你能发布一些代码吗?没错,问题在于脚本。这不会对我的应用程序的安全性构成威胁吗?嗯,即使你不关闭请求验证,你也应该验证你的输入并对输出进行编码。内置请求值仅提供基本的部分保护。我已经更新了我的答案,添加了一些到AntiXss资源的附加链接。这是否会对我的应用程序的安全性构成威胁呢?即使你不关闭请求验证,你也应该验证你的输入并对输出进行编码。内置请求值仅提供基本的部分保护。我已经更新了我的答案,添加了一些到AntiXss资源的链接。