2009-09-13 59 views
1

我们正在用C#.net作为语言构建ASP.NET应用程序。ASP.NET web应用程序 - 表单字段数据的Serverside验证

这里我们使用ASP.NET验证控件在客户端验证表单字段的数据。现在我们计划在服务器端验证表单字段的数据,以避免黑客进行脚本注入。

如果你有什么想法,请你指导我吗?

如果您还可以提供参考文档或Web引用(如果需要),将会很棒。

回答

1

如果您使用ASP.NET验证控件,它们还包括服务器端验证。

你可以看看MSDN了解更多信息这里:http://msdn.microsoft.com/en-us/library/aa479013.aspx

从MSDN页面

直:

是什么使得这些验证服务器控件有效的是,当含有这些控件的ASP.NET页面是请求,它是决定是否在客户端或服务器上执行验证的ASP.NET引擎,具体取决于发出请求的浏览器。因此,根据请求的浏览器,您的页面功能会发生变化,从而使您可以使网页尽可能达到最佳状态,而不是使Web应用程序变为最低公分母。

1

ASP.Net验证控件实际上同时进行客户端和服务器端验证,但是这通常用于诸如所需字段,长度,格式匹配之类的东西。验证控件通常不用于防止恶意活动。

在保护您的应用程序方面,需要注意的两件事是脚本注入和SQL注入。

默认情况下,ASP.net中内置了一些脚本注入保护,但最好还是直接防御攻击。任何由用户输入产生的输出都应该在输出前进行编码。您可以使用HttpUtility.HTMLEncode()。还有一个来自Microsoft的AntiXss库,可提供增强的保护。

请注意,这些措施通常尽可能接近程序输出。此方法不会拒绝包含恶意脚本的条目,而是将脚本编码为无害的文本输出。

当然,存储到数据库的任何数据都应该参数化或通过linq插入以防止SQL注入 - 这将确保存储的数据是强类型的,并且不能作为查询执行。

XSS Defense Tips
AntiXss library Download