描述
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 完整性 可用性
|
技术的影响:阅读应用程序数据;执行未经授权的代码或命令
|
|
示范例子
示例1
在下面的例子中,XSS中和方法打算替换脚本标签在一个安全的对等词的用户提供的输入:
公共preventXSS字符串(字符串输入字符串面具){
返回输入。replaceAll(“脚本”,面具); }
代码只能当“脚本”标签在所有小写,形成一个不完整的denylist (cwe - 184)。相当于标签如“脚本”或“脚本”不会被这种方法,中和允许XSS攻击。
观察到的例子
潜在的缓解措施
实施阶段:
解决在处理之前所有输入绝对或规范的表示。 |
实施阶段:
仔细检查每个输入参数与严谨积极的规范(allowlist)定义特定字符和格式允许的。所有输入都应该中和,而不仅仅是用户应该指定参数,但请求中所有数据,包括标记属性,隐藏字段,饼干,标题、URL本身,等等。一个常见的错误导致持续的XSS漏洞仅是验证字段将被显示的网站。我们经常遇到数据从请求所反映的应用服务器或应用程序开发团队没有预料到。一个字段,目前不是反映未来的开发人员可以使用。因此,建议验证HTTP请求的所有部分。 |
实施阶段:
使用和指定输出编码可以由下游组件读取输出。常见的编码包括iso - 8859 - 1、utf - 7, utf - 8。如果不指定一个编码,下游组件可能会选择不同的编码,通过假设一个默认的编码或使用自动推断哪些编码,这可能是错误的。编码不一致时,下游组件可能治疗一些特殊字符或字节序列,即使他们没有特别在原始的编码。攻击者就能够利用这种差异,开展注入攻击;他们甚至可以绕过保护机制,假设原编码也被下游组件。
输出编码不一致的问题经常出现在web页面。如果没有指定一个编码在一个HTTP头,web浏览器经常猜测哪些编码使用。这可以打开浏览器微妙的XSS攻击。
|
实施阶段:
使用Struts,编写所有的数据表单bean与bean的过滤器属性设置为true。 |
实施阶段:
帮助减轻XSS攻击用户的会话cookie, HttpOnly设置会话cookie。在浏览器支持HttpOnly特性(比如最近版本的Internet Explorer和Firefox),这个属性可以防止用户的会话cookie访问恶意使用。com的客户端脚本。这不是一个完整的解决方案,因为HttpOnly不是所有浏览器都支持的。更重要的是,XMLHTTPRequest和其他强大的浏览器技术提供读访问HTTP头信息,包括set - cookie HttpOnly标志设置的标题。
|
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这个CWE条目是变体的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
千鸟 |
|
|
交替XSS语法 |
软件故障模式 |
SFP24 |
|
污染输入命令 |
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|