• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET Web应用程序的安全解决方案浅析

ASP.NET Web应用程序的安全解决方案浅析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了web应用程序,web应用程序设计,web应用程序开发,web应用程序开发技术,c#web应用程序实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
一、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特殊符号,防止脚本在回发表示时触发。

2. 防止SQL注入攻击(SQL Injection Attack)
攻击方法:通过画面输入或URL参数修改,利用其作为SQL查询条件的特殊性,将输入SQL文注入并返回结果的攻击。
威胁指数:9
攻击结果:可查询敏感数据并可修改系统数据。
预防措施:在数据更新和查询时使用数据库参数对象或使用自定义方法转换输入参数,以使注入SQL文失效。
3. 验证用户输入
通过客户端验证为主、服务器端验证为辅(当禁用客户端Javascript时服务器端验证就尤为重要)
客户端验证主要负责验证用户输入的类型、长度、关联关系的验证(此功能由系统扩展控件提供);
服务器端验证分为两部分:
1) 输入验证
输入验证需要对用户输入文字的HTML特殊字符进行验证,含有特殊字符的要抛出系统错误;数据的长度控制尽量在画面通过控件的允许输入长度进行控制;
2) 数据验证
验证数据类型、长度等;此验证行为在对象上进行。
4. 使用Hash算法保存密码
使用ASP.NET Membership管理用户,用户密码使用Hash算法和Salt加密,安全性高;
对于其它需要保存的密码,系统基础结构将提供Hash加密算法进行不可反向加密,作为验证凭据,或者先取先用不保存在数据存储中。
5. 数据安全性
1) 加密敏感数据:基础结构应提供Hash加密算法支持数据加密。
2) XML数据安全性:防止XML数据攻击。
攻击方法:XPath注入和XXE(扩展XML实体)注入攻击。
威胁指数:8
攻击结果:获得XML文件信息。
预防措施:不在XML中保存敏感信息,所有配置文件中的敏感信息需要加密保存,对于要写入XML的数据应先通过验证。
3) ViewState数据安全性:防止从ViewState获取敏感数据。
攻击方法:通过解码ViewState获得敏感信息。
威胁指数:6
攻击结果:获得ViewState中的敏感信息。
预防措施:禁用ViewState或避免,使用简单控件采用加密方式保存敏感信息。
关联问题:使用JSON字符串时注意敏感数据的处理。
6. 存储安全信息到注册表和配置文件
控制远程用户对配置文件的访问权限,保护配置文件中的敏感数据。
7. 再发布前修正配置文件
为防止错误堆栈信息推测以及通过其它信息查获手段进行攻击,ASP.NET Web应用程序在发布前应对配置文件进行修正。
错误堆栈信息推测攻击
攻击方法:造成系统异常,通过错误页上的堆栈信息推测代码进行下一步攻击。
威胁指数:6
攻击结果:推测系统版本和代码逻辑。
预防措施:捕获系统异常使用统一页面进行处理不表示错误堆栈信息,将自定义错误节点设置为<customErrors mode=”Off” />即可防止错误信息表示给远程用户;同时应关闭调试开关<compilation defaultLanguage=”vb” debug=”false” />防止通过调试信息泄漏源代码或进行代码注入。

同时应该关闭Trace优化性能并防止方法攻击者利用Trace推测代码执行过程和详细内容:<trace enabled=”false” requestLimit=”10” pageOutput=”false” traceMode = ”SortByTime” />
对于Web服务要防止远程用户利用WSDL描述进行推测攻击。
攻击方法:访问Web服务WSDL文件,获得Web服务相关信息。
威胁指数:4
攻击结果:获得Web服务方法描述,推测Web服务参数,进行下一步攻击。
预防措施:在配置文件中指定不表示Web方法描述内容,配置文件改修如下:

参考:

ASP.NET Security: 8 Ways to Avoid Attack

http://www.devx.com/security/Article/20898/1954

《Hacking Exposed Web 2.0 : Web 2.0 Security Secrets and Solutions》,Rich Cannings, Himanshu Dwivedi, Zane Lackey,2008.

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MVC 5 第一章 创建MVC 5 web应用程序
  • 巧用ASP.NET预编译Web应用程序规避调用延迟的方法
  • ASP.NET Web应用程序的安全解决方案浅析
  • vs.Net2003无法打开或创建Web应用程序若干解决办法.
  • C#Web应用程序入门经典学习笔记之二
  • C#Web应用程序入门经典学习笔记之一

相关文章

  • 2017-05-11ASP.NET实现word文档在线预览功能代码
  • 2017-05-11IIS7的应用程序池详细解析
  • 2017-05-11ASP遗留的二十大积习
  • 2017-05-11asp.net删除文件session丢失
  • 2017-05-11asp.net FileUpload控件实现文件格式判断与文件大小限制
  • 2017-05-11SQLServer 在Visual Studio的2种连接方法
  • 2018-08-20ASP.NET WebAPI连接数据库的方法
  • 2017-05-11asp.net(c#)限制用户输入规定的字符和数字的代码
  • 2017-05-11.NET操作Excel实例分享
  • 2017-05-11ASP.net(c#)用类的思想实现插入数据到ACCESS例子

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET入门之HTML服务器控件概述
    • NopCommerce架构分析之(七)主题Theme皮肤管理器
    • 在ASP.NET 2.0中操作数据之四十一:DataList和Repeater数据分页
    • ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
    • 使用HttpWebRequest向网站模拟上传数据
    • ASP.NET Page函数调用顺序解析
    • 在ASP.NET中用存储过程执行SQL语句
    • ASP.NET Core项目配置教程(6)
    • .Net下的签名与混淆图文分析
    • .net实现webservice简单实例分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有