当前位置:w88优德官网网文章中心网站运营网站安全 → 预防Web应用程序的漏洞

预防Web应用程序的漏洞

减小字体 增大字体 作者:admin  来源:本站整理  发布时间:2017-4-27 8:49:30
如今的Web应用程序可能会包含危险的安全缺陷。这些应用程序的全球化部署使其很容易遭受攻击,这些攻击会发现并恶意探测各种安全漏洞Web环境中两个主要的风险在于:注入——也就是SQL注入,它会让黑客更改发往数据库的查询——以及跨站脚本攻击(XSS),它们也是最危险的(Category:OWASP_Top_Ten_Project)。注入攻击会利用有问题代码的应用程序来插入和执行黑客指定的命令,从而能够访问关键的数据和资源。当应用程序将用户提供的数据不加检验或编码就发送到浏览器上时,会产生XSS漏洞。尽管2009年OWASP(Open Web Application Security Project)的一个报告表明安全方面的投资在增加(Category:OWASP_Security_Spending_Benchmarks),但是NTA Monitor的2010 Web应用安全报名表明Web的安全性跟前一年相比实际在下降。实际上,Web应用的漏洞给公司和组织带来了很多的问题。按照WhiteHat Security最新的Web站点安全性数据报告所示,被评估网站的63%是有漏洞的,每个平均有六个未解决的缺陷。(WhiteHat Website Security Statistics Report)。这些漏洞创建并维持了一个基于攻击窃取数据和资源的地下经济链。Web应用程序需要有深度防御的措施来避免和减少安全性漏洞。1这种方式假设所有的安全预防措施都可能失败,所以安全性依赖于多层的机制从而能够覆盖其他层的失败。为了减少成功攻击的可能性,软件工程师团队必须做出必要的努力来引入适当的安全性防护措施。要达到这一点必须使用各种技术和工具来确保安全性涵盖软件产品开发生命周期的所有阶段。软件开发生命周期中的安全性尽管软件开发的生命周期有多种不同的划分方式,但正如图1所示,它通常包含如下的阶段:初始化、规范和设计、实现(编码)、测试、部署以及停用,这些阶段应用开发人员可以不断地重复迭代。2尽管开发人员应该在产品的整个生命周期中都关心代码安全性,3但是他们应该特别关注三个关键阶段:1实现。在编码过程中,软件开发人员必须使用特定应用领域内避免关键漏洞的最佳实践。这种实践的例子包括输入和输出校验、识别恶意字符以及使用参数化的命令。4 尽管这些技术在避免大多数安全漏洞方面很有效,但因为缺乏安全相关的知识,开发人员通常并不使用它们或者使用得不正确。边栏“为什么开发人员不使用安全编码实践?”更详细地讨论了这个问题。测试。有很多技术可以在测试阶段使用,包括渗透测试(目前最流行的技术)、静态分析、动态分析以及运行时的异常检测。4 问题在于开发人员通常会关注需求功能的测试而忽略安全方面。另外,现有的自动化工具要么在漏洞探测覆盖度方面比较差要么产生太多的误报。部署。在运行时环境中,会有不同的攻击探测机制。这些机制可以按照不同的级别运行并使用不同的探测方式。它们的使用障碍在于性能开销以及不准确的结果会打乱系统的正常行为。预防Web应用程序的<a target=漏洞" height="212" onload="return imgzoom(this,550);" onclick="javascript:window.open(this.src);" style="cursor: pointer;"/>开发安全的代码为了编写没有漏洞的安全代码,4 基于Web基础设施的关键业务开发人员就要遵循编码实践,这个实践包括了深度防御的措施,它假设所有的安全性预防措施都会失败。在实现阶段依赖多层的安全机制是特别重要的,使用一个预防或保护措施来避免安全漏洞是不够的。Web应用程序的特征在于需要三层不同的安全防线:输入校验、热点保护以及输出校验。输入校验大多数的安全漏洞是因为目标应用程序没有正确地校验输入数据。1所以,应用程序要考虑到所有恶意的输入直到能证明其合法,这要涵盖不可信环境中的所有数据。输入校验是第一道防线,总体来讲就是缩小应用程序允许输入的范围,它会直接作用在用户提供的数据上。这种类型的防御要依赖输入参数在一个合法的范围内,或者如果用户提供了超出了范围的值就会停止执行。在Web应用程序中,这首先要标准化输入将其转换到基线字符集和编码。接下来,应用程序必须对标准化的输入使用过滤策略,拒绝那些值在合法范围之外的输入。这种方式能够避免很多Web应用程序中的问题,在执行输入校验时会使用正向模式匹配或正向校验。在这种情况下,开发人员建立规则来识别那些可接受的输入而不是识别有什么输入是不可接受的。尽管开发人员不能预测所有类型的攻击,但他们应该能够说明所有类型的合法输入。关键问题在于,输入校验通常使用地并不充分,这是因为输入参数的数据域允许存在恶意数据,这是与校验执行相独立的。例如,在SQL注入漏洞中,大多数的SQL语句使用引号作为字符串分隔符,这就意味着黑客可以使用它来执行SQL注入攻击。4但是,在有些情况下,字符串输入域必须允许存在引号值,所以应用程序不能排除所有包含引号的值。热点防护为了应对输入校验的局限性,有必要采用第二道防线任何类型的攻击都是以热点为目标的,热点指的就是应用程序中可能会有某种类型漏洞的代码。通用的输入校验会在应用程序中进行或者在整个Web应用程序上下文中修改输入,与之相比,第二道防线关注于保护重要的热点,例如保护那些真正使用输入域值的代码行。一个具体的例子就是SQL注入攻击,它们大多数会使用单引号或双引号。有些编程语言提供了对这些字符的转码机制,这样它们就能用在SQL语句中了,但是只能用来在语句中分隔值。4但是这些技术有两个问题。第一,更高级的注入技术,例如联合使用引号和转义字符,可以绕过这些机制。第二,引入转义字符会增加字符串的长度,如果结果字符串的长度超过数据库限制的话,可能会导致数据截断。正确使用参数化命令是预防注入攻击最有效的方式。1在这种情况下,开发人员定义命令的结构,并使用占位符来代表命令的变量值。稍后,当应用程序将对应的值关联到命令上时,命令解释器会正确地使用它们而不会涉及到命令的结构。这种技术最著名的用法是数据库的预处理语句,也被称为参数化查询。4 当应用程序创建预处理语句时,语句发送到了数据库端。应用程序使用占位符来表示查询的可变部分,占位符通常会是问号或标签。随后,每次查询执行时,应用程序都要往对应的可变部分绑定值。不管数据的内容是什么,应用程序会一
[1] [2] [3] [4] [5]  下一页
本文引用网址:
在下列搜索引擎中搜索“预防Web应用程序的漏洞”的相关信息:
谷歌搜索 百度搜索 360搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1最新90后吹箫门事件曝光 90后女...
  • 2女学生裸贷资源百度云下载 10G...
  • 3王梦溪未经处理雅照120P完整艳...
  • 4女大学生裸贷照片合集[100P/23...
  • 5借贷宝10g压缩包.rar 10g女大学...
  • 12016黑客免费送qq 6位qq号 7位...
  • 2身份证号大全:防沉迷满18岁的...
  • 32016年最新成年身份证号码大全...
  • 4身份证号码和真实姓名 满18岁成...
  • 5我想更改前台页面的样子,改怎...
  • 1兰州警花王梦溪裸照全集视频 王...
  • 2杨晴雨裸条图片 女学生裸贷照片...
  • 3合肥艳照门事件 合肥艳照门全套...
  • 4嫩白少妇与猛男户外疯狂车震遭...
  • 5中国女大学生的淫靡生活
  • 1linux服务器在运行210天左右宕...
  • 2如何在Linux下使用逻辑卷管理程...
  • 3如何做服务器安全维护?有哪些...
  • 4HTTP 错误 404 - 文件或目录未...
  • 5提高IIS网站服务器的效率的八种...
  • 赞助商广告

    图片文章导读

    相关文章阅览