ASP.NET开发网站程序安全解决方案(防注入等)
以下内容整理于网络,欢迎喜欢ASP.NET的朋友可以看下:
一、ASP.NET Web应用程序架构安全隐患
1. 对于程序集主要威胁:未验证的访问、反向工程、代码注入、通过异常获得程序信息、未审核访问。
2. 客户端与Web应用程序之间的安全隐患:代码注入(跨站点脚本或缓冲区溢出攻击)、网络监控(密码和敏感应用程序数据探测)、参数破解(表单字段、查询字符串、Cookie、视图状态、HTTP头信息)、会话状态变量ID取得、信息获取(通常使用异常)。
3. Web应用程序客户端与企业服务之间的安全隐患:非审核访问、破解配置数据、网络监视、未约束代理、数据复制。
4. Web服务客户端及其服务之间的安全隐患:非审核访问、参数破解、配置数据取得、网络监、消息回复。
5. Remoting客户端及服务器之间的安全隐患:非审核访问、参数破解、序列化、网络监控。
6. 客户端到数据之间的安全隐患:非审核访问、SQL注入、破解数据模型和链接详细信息、网络监控、破解配置数据、破解面干应用程序数据。
* ASP.NET安全架构注意事项
1. 在浏览器认证用户;
2. 在浏览器和防火墙通路中1)保护敏感数据2)阻止参数破解3)阻止会话攻击和Cookie回复攻击
3. 在Web应用程序侧1)提供安全配置2)处理异常3)审核用户4)验证输入
4. 应用程序服务器1)认证和审核上传身份2)审核并记录活动和事务
5. 在应用程序服务器和数据库间保护敏感数据
6. 数据库中加密或者哈希加密敏感数据
二、ASP.NET Web应用程序安全性隐患防治办法
1. 防止跨站点脚本攻击(Cross-Site Scripting Attack)
攻击方法:在页面通过输入脚本或HTML内容获取敏感数据。
威胁指数:6
攻击结果:应用程序拒绝服务或重启,获得错误堆栈信息(※)推测代码进行下一步攻击。
※注:在ASP.NET配置文件中如果未关闭CustomErrors则可能导致在出现系统异常时显示错误行代码或数据库连接字符串,泄漏配置数据,造成危险隐患。
预防措施:ASP.NET控件验证或服务器端输入验证。
采用客户端验证和服务器端验证结合的方式对用户输入进行验证,通过比较控件输入和其HTML译码值的一致性确认输入字符串中是否含有HTML特殊符号,以此作为依据转化HTML特殊符号,防止脚本在回发表示时触发。