增强Web的安全性.docVIP

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

增强Web的安全性 通过互联网,人们可以做网上交易等各种事情。如何使信息不被窃取、站点不被破坏,就成了网络应用开发者、网管员的重要责任。本文介绍了几种提高Web站点安全的原则和方法。 一、应用环境 一般来说,提供数据库应用服务的Web站点主要由操作系统服务器、数据库服务器和Web服务器三项构成,由此,我们对Web站点的安全设置就可以从这三方面入手。基于不同的环境配置的Web解决方案,其安全考虑各有侧重,但基本的原则是大致相同的。下面我们以基于Windows2000 Advanced Server、Internet信息服务5.0和SQL Server 2000环境构建Web解决方案为例,讨论Web站点的安全问题。此外,由于目前大多数网站开发都使用Microsoft的.Net Framework,我们将.Net Framework也考虑进去。 二、解决方法 1.Web应用程序层安全 Web应用程序层安全即是在进行Web应用开发时应该考虑的安全因素,这里包括窗体身份验证、输入有效性验证、使用参数化存储过程、输出数据HTML编码、信息加密等内容。 (1) 窗体身份验证 窗体身份验证即是当用户请求一个安全页面时,系统要对其进行判断,如果该用户已经登录系统并尚未超时,系统将返回此页面给请求用户; 反之如该用户尚未登录,系统就要将此用户重定向到登录页面。 以上所述功能的实现只需对Web.config文件进行如下配置即可。 如果系统中某些页面不希望被匿名身份用户访问,可以对Web.config进行如下配置: …… …… 对进行身份验证的登录页本身,应该采取两步方式验证用户存在且密码正确,且不可为图简便而使用一条SQL语句进行验证(如果攻击者攻破网站,并将SQL语句的where子句末尾加上一段永远为真的判断语句,则无论何时他都可以通过身份验证)。 存在安全隐患的身份验证语句是:select * from users where name = namestr and password = passwdstr。 比较安全的用户身份验证应该是:判断用户是否存在用“select name,password from users where name = namestr”。 如用户存在,将返回一条包括用户名和密码的记录,然后判断由数据库返回的密码和用户输入的密码值: if password = passwdstr { //通过验证后的程序代码 …… }else{ //未通过验证后的程序代码 …… } 为加强用户名、密码等这些敏感信息在公网上的安全传输,应通过安全套接字层加密后再返回给Web服务器。 (2) 输入有效性验证 输入有效性验证即是对所有用户输入的字符范围进行限制,以防可用于向Web站点发送恶意脚本的字符被禁止使用。 通过ASP.NET的System.Text.RegularExpressions.Regex 类提供的功能,用正则表达式对数据进行验证,如下所示: Regex isNumber = new Regex(“^[0-9]+$”); if(isNumber.Match(inputData) ) { // 使用它 …… } else { // 丢弃它 …… } 正则表达式是用于匹配文本模式的字符和语法元素集合,用于确保查询字符串是正确且无恶意的。 (3) 使用参数化存储过程 使用参数化存储过程是指在Web应用中,尽可能将对数据库的操作使用存储过程来完成,而不是动态构造SQL语句。 将与数据库的交互限制到存储过程,这通常是增强Web安全的一个最佳方案。如果不存在存储过程,则 SQL 查询必须由 Web 应用程序动态构造。如果 Web 层遭到破坏,攻击者就可以向数据库查询中插入恶意命令,以检索、更改或删除数据库中存储的数据。使用存储过程,Web 应用程序与数据库的交互操作仅限于通过存储过程发送的几个特定的严格类型参数。每当开发人员使用.Net Framework 调用存储过程时,系统都会对发送到此存储过程的参数进行检查,以确保它们是存储过程可接受的类型(如整数、8 个字符的字符串等)。这是 Web 层有效性验证上的又一个保护层,可确保所有输入数据格式正确,且不能自行构造为可操作的 SQL 语句。 (4) 输出数据HTML编码 输出数据HTML编码是指在将任何数据返回给用户前均应采用HTML编码,以防止跨站点的脚本攻击。因为攻击者一旦破坏了数据库,便可向记录中输入脚本,此脚本随后被返回给用户并在浏览器中执行。通过HTML编码,可将大多数脚本命令自动转换为无害文本。 通过System.Web.HttpServerUtility 类中的 HtmlEnc

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档