概要:
本文主要介绍如何校验用户输入从而防止注入式攻击.校验用户输入是非常必要的,几乎所有程序级的攻击都包含恶意输入的手段.
你应该校验包括字段,查询字串参数,Cookie等一切用户输入项来保护你的程序免受注入攻击.你得假设所有的用户输入都是恶意的,确保在服务器端对所有的用户输入进行校验.使用基于客户端的验证可以减少页面的住返次数,改进性能,改善用户体验,但是不要仅仅依赖于此,因为客户端的验证很容易就可以被黑客骗过去.
为了验证输入内容,你应该为每一个输入字段定义可接受的输入规则.比较好的作法是从输入字段的长度,范围,格式,类型来作约束.使用可接受的字符约束列表而不是非法字符列表来约束输入.使用非法字符列表约束的方式不好,是因为你几乎不可能过滤所有的有害输入.
如果你需要接受HTML字符输入,最好使用HtmlEncode之类的方法将它进行编码确保安全再将它们显示出来.
内容:
目的
总括
分步实施提要
第一步. 使用ASP.NET 请求校验.
第二步. 使用权用约束输入.
第三步. 对不安全的输入进行编码.
第四步. 对Sql语句使用命令参数方式.
第五步. 验证ASP.NET的错误没有被返回客户端.
额外的资源
原文连接:http://blog.csdn.net/meixiafeng/archive/2007/12/22/1958688.aspx
本文主要介绍如何校验用户输入从而防止注入式攻击.校验用户输入是非常必要的,几乎所有程序级的攻击都包含恶意输入的手段.
你应该校验包括字段,查询字串参数,Cookie等一切用户输入项来保护你的程序免受注入攻击.你得假设所有的用户输入都是恶意的,确保在服务器端对所有的用户输入进行校验.使用基于客户端的验证可以减少页面的住返次数,改进性能,改善用户体验,但是不要仅仅依赖于此,因为客户端的验证很容易就可以被黑客骗过去.
为了验证输入内容,你应该为每一个输入字段定义可接受的输入规则.比较好的作法是从输入字段的长度,范围,格式,类型来作约束.使用可接受的字符约束列表而不是非法字符列表来约束输入.使用非法字符列表约束的方式不好,是因为你几乎不可能过滤所有的有害输入.
如果你需要接受HTML字符输入,最好使用HtmlEncode之类的方法将它进行编码确保安全再将它们显示出来.
内容:
目的
总括
分步实施提要
第一步. 使用ASP.NET 请求校验.
第二步. 使用权用约束输入.
第三步. 对不安全的输入进行编码.
第四步. 对Sql语句使用命令参数方式.
第五步. 验证ASP.NET的错误没有被返回客户端.
额外的资源
原文连接:http://blog.csdn.net/meixiafeng/archive/2007/12/22/1958688.aspx