给开发者的终极XSS防护备忘录-知道创宇.PDF

给开发者的终极XSS防护备忘录-知道创宇.PDF

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
给开发者的终极XSS防护备忘录-知道创宇

给开发者的 终极 XSS 防护备忘录 V1.0 Ajin Abraham OWASP Xenotix XSS 漏洞利用框架作者 | opensecurity.in 译者 :Fooying 知道创宇安全研究团队 安全研究员 | 提供给开发者的 Web 应用程序 XSS 防护快速指南 免责声明 给开发者的终极 XSS 防护备忘录是一份汇总整理 自不同组织、研究人员、网站以及我自 己经验的用于 XSS 防护的资料。这份文档通过简单的语言和辩证解释帮助开发者实现正 确的 XSS 防护,并建立一个可以防止 XSS 漏洞和发起 XSS 攻击的安全 Web 应用。它还 将讨论各种编程语言提供的用于降低 XSS 的现有方法及函数。这份文档将会定期更新以 包含 XSS 防护领域中已更新或校正的信息。 译者注 因为觉得这份文档真心不错,很多人也都推荐,有翻译的价值,于是利用每天下班后的时 间做了下翻译,主要靠自己的理解以及谷歌翻译,前后大概是一个礼拜的时间。 文档中所有的翻译都争取保留原文的格式,但为了更清楚明了以及语义通顺,一些地方做 了一些修饰词及顺序的更改。 因为水平有限等原因,文档中的一些翻译可能不是完全到位,欢迎大家指正 (可以通过以 下联系方式 )。 联系方式: 微博 :/fooying 知乎专栏:/fooying 邮箱 :f00y1n9@ 网址 : 微信公众号 :0xsafe 知道创宇安全研究团队 简介:什么是 XSS? XSS 或者说跨站脚本是一种 Web 应用程序的漏洞,当来自用户的不可信数据被应用程序 在没有验证以及反射回浏览器而没有进行编码或转义的情况下进行了处理,导致浏览器引 擎执行了代码。 XSS 类型 • 反射型 XSS • 存储型 XSS • DOM XSS • 突变 XSS 反射型 XSS 反射或者非持久型 XSS 是当不可信的用户输入被服务器在没有任何验证下处理并在没有编 码或转义的情况下反射回响应文中,导致代码在浏览器执行的一种 XSS 漏洞。 存储型 XSS 存储或持久型 XSS 是当不可信的用户输入被处理并在没有任何验证的情况下保存在文件或 数据库 ,同时该不可信的数据从存储中被获取然后在没有编码或转义的情况下反射回响应 文中,导致了永久性的每次存储数据反射回响应文代码就会在浏览器中执行的一种 XSS 漏 洞。 DOM XSS DOM XSS 是客户端 XSS 的一种形式,数据来源在 DOM 中 ,接收器也在DOM 中 ,而数 据流从来没有离开浏览器。它发生在一个不可信的数据在源中被给予并被执行 ,结果导致 修改了 DOM 在浏览器中的 “环境”。DOM XSS 攻击发生在不可信数据相对于上下文没 有被编码或转义的情况下。 突变 XSS mXSS 或突变 XSS 是当不可信数据在 DOM 的 innerHTML 属性的上下文被处理并通过浏 览器发生突变 ,导致变成一种有效的XSS 向量的一种 XSS 漏洞。在 mXSS ,一个看起来 无害的可以通过客户端或服务端 XSS 过滤器的用户指定的数据通过浏览器执行引擎发生突 变可以反射回一个有效的 XSS 向量。XSS 过滤器不能防止 mXSS。为了防止 mXSS ,应实 施有效的 CSP ,框架应该不被允许,HTML 文档应该定义文档类型 ,强制浏览器遵循标准 呈现内容以及执行脚本。 XSS 防护 如果你可以使得一个 Web 应用程序满足以下规则,XSS 可以被减少。 1. 验证输入并且基于语境和按照正确的顺序转义不可信数据 输入验证 所有不可信数据应该针对 Web 应用程序的逻辑在处理和存储前进行验证。 浏览器解析顺序 浏览器解码顺序 解码和解析顺序意味着很多东西。如果对不可信数据的编码或解码以错误的顺序或错误的 环境 ,将再次有机会导致 XSS 漏洞的发生。编码或者转义对不同的环境要求不同。这些 编码的顺序应该取决于应用程序的逻辑。 一个典型的不可信数据可以反射在 HTML ,HTML 属性,脚本变量,脚本块 ,含状态传 输的参数,URL、风格等中。不同的转义方法为了确保 XSS 的防护必须要在不同的环境 中实现。 顺序和上下文相关转义 1. HTML 中的字符串 对 HTML 中不可信字符串进行 HTML 转义。 Example: 1. h1 Welcome html_escape(untrusted string) /html 符号 编码

文档评论(0)

sunshaoying + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档