cwe - 838:不适当的上下文编码输出
视图定制的信息:
这个弱点可能导致下游组件使用一个解码方法产生不同的数据比产品旨在发送。使用错误的编码时,即使密切相关——下游组件可以解码数据不正确。这可以有安全的后果时提供控制和数据之间的界线正无意中打破,因为结果数据可以引入控制字符或特殊元素没有发送的产品。由此产生的数据可以用来旁路保护机制,如输入验证,使注入攻击。 在使用输出编码是至关重要的,以确保组件之间的通信是准确的,使用错误的编码——即使密切相关——可能导致下游组件误解输出。 例如,HTML实体编码用于元素在一个web页面的HTML的身体。然而,程序员可以使用实体编码生成输出时一个属性中使用的HTML标记,这可能包含功能性Javascript并不影响HTML编码。 在web应用程序中最受关注这个问题,这个弱点可能适用于任何类型的产品,使用通信流,可以支持多种编码。 ![]() ![]()
![]() ![]()
![]() ![]()
![]() 语言 类:不是特定于语言的患病率(待定) ![]()
示例1 这段代码使用POST数据动态地构建一个HTML页面:
(坏的代码)
例如语言:PHP
$ username = $ _POST['用户名');
$ picSource = $ _POST [' picSource ']; $ picAltText = $ _POST [' picAltText ']; … <标题>欢迎,“回声”。htmlentities(用户名)美元。”< /名称>”; < img src = "回声”。htmlentities (picSource美元)。”alt =”。htmlentities (picAltText美元)。’”/ > '; … 程序员试图避免XSS攻击(cwe - 79)编码后的值,所以他们不会被解释为有效的HTML。然而,htmlentities()编码时不合适的数据被用作HTML属性,允许更多的属性被注入。 例如,攻击者可以将picAltText设置:
(攻击代码)
“altTextHere onload = '警报(。)”
这将导致图像生成的HTML标记:
(结果)
例如语言:HTML
< img src = " pic.jpg ' alt = ' altTextHere onload =“警报(。)”/ >
攻击者可以注入任意javascript标记由于不正确的编码。
![]()
更多的信息是可用的,请选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |