如何构建安全的.netweb应用系统.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何构建安全的.netweb应用系统

如何构建安全的.net web应用系统 ?构建一个安全的系统,这是一个非常庞大的工程。它包括设置网络安全,设置操作系统安全以及应用程序本身的安全性。本文介绍的是有关应用.Net技术如何构建一个安全的Web应用系统。 一 安全涉及的服务 构建一个Web应用系统,肯定要涉及到客户端,iis以及数据库等各个组建。下面这幅图[该图来源:/en-us/library/aa302415.aspx]很好地反映了web应用程序的整个风貌,左边表示web应用程序设计的组件或服务,右边表示各个组件或服务可以考虑使用的安全方案。 比如在IIS这个环节上,我们可以使用匿名访问或设置其它的验证控制方式,可以设置IP地址和域名限制,也可以设置安全案通讯服务器证书。最新版本的IIS都较上一个IIS版本更好的安全改进。最新的IIS7新增安全性可以阅读/bhill/archive/2006/08/16/Security-features-in-IIS-7.aspx。 二 IIS的设置 如何设置IIS,在最大程度上确保IIS安全呢? 1. 给IIS打好补丁。 每隔一段时间,微软都会发布一些安全更新的补丁,必须及时给您的系统打上这些更新补丁。 2. 更改vs 2005自动生成的web项目的文件存放位置。建立web项目时,vs 2005会自动在C:\Inetpub\wwwroot下创建项目目录,更改这个自动生成的目录,将他放在其他盘下的某个位置,将会增加入侵者找到文档目录的难度。 3. 如采用匿名访问,给匿名用户尽量少的系统权限。 4. 如有必要,给站点设置IP地址限制。 5. 禁用目录浏览项目,阻止恶意用户导航到带有危险工具的目录。 ?? [站点]-[属性]-[主目录]-[目录浏览] 6. 禁用父路径浏览,以防恶意用户使用MapPath方法浏览父目录。 ?? [站点]-[属性]-[主目录]-[应用程序配置]-[启用父路径] 7. 删除不必要的IIS虚拟目录 三 Web程序的设置 1.?设置服务器的验证方式 .net 提供了我们三种验证的方式,分别为Windows身份验证,窗体身份验证和.net Passport身份验证。对于这三种验证方式,msdn中的 /en-us/library/aa302388.aspx?一文已对此作了非常详细的介绍。 2. 加密连接数据库字符串 ? 不少朋友喜欢将连接数据库字符串直接放在web.config中的connectionStrings节点下,如同add name=SQLConnString connectionString=Data Source=... User Id=...;Password=....;Initial Catalog=...; providerName=System.Data.SqlClient/其实这样做非常不安全,万一web.config这个文件被非法用户获取,那么数据库服务器上的数据库及用户名密码信息就会被一览无余,这等于给了非法用户一个防盗门的钥匙。有两中较好的方法加密方法: 方法1: msdn中有两篇很好的文章分别叙述了如何使用DPAPI和RSA分别给它加密。 Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI: /en-us/library/ms998280.aspx Encrypt Configuration Sections in ASP.NET 2.0 Using RSA:?/en-us/library/ms998283.aspx 方法2: 在windows注册表中新建键值,将SQLConnString加密后的信息存放在该键值上,然后设置某部分用户才有权限去读取注册表中的键值,这不失为一种更为安全的方法。 3.? 预防跨站点攻击 何为跨站点攻击?跨站点攻击是恶意教本通过其他站点通过脚本的形式注入系统。 如 view.aspx?stuname=sam 写成view.aspx?stuname=scriptalert(you are attacked!)/script 这就是一个典型的跨站点攻击。 预防的措施有: 1. 限制输入格式,输入类型,输入长度以及输入字符 ?如果你使用的web控件,可以使用提供的服务器端验证控件加以验证。如果使用html server端控件,那就需要使用System.Text.RegularExpressons.Regex在服务器端加以验证。 注意,不要仅仅在客户端使用js代码加以验证。因为客户端的js脚本可以轻松地通过禁用教本语言将它忽略。我对客户端的js脚本的理解是,他仅仅帮助改善用户体验。 2.?格式化输出。将输入的内容通过HttpUtility.HtmlEncode处理

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档