jQuery .html()函数导致CWE-80:Veracode中网页(基本XSS)中与脚本相关的HTML标记的不正确中和警告

时间:2018-08-08 13:47:37

标签: javascript jquery veracode

我通过Veracode运行了Web应用程序(使用Java使用Play框架构建),并返回了警告:

import React from 'react';
import * as actionTypes from '../action/FIRST_PERSON_CHOSEN';

const initialState = {
    personName: ' '
};

const personChosen = (state = initialState, action) => {
    switch (action.type) {
        case actionTypes.FIRST_PERSON_CHOSEN:
            return {
                ...state,
                personName: 'somebody'
            };
    }
    return state;
}

export default personChosen;

针对我的jQuery函数CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)

我正在通过REST调用中的HTML更新.html()元素。

这是JavaScript:

<table>

我发现了一些与此相关的帖子,但不确定如何更改代码以消除此警告:

Avoid Veracode CWE-80: Improper Neutralization of Script-Related HTML in jquery htm() method

How to fix “Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)” in PHP output string

https://www.codeproject.com/Questions/1062655/Improper-Neutralization-of-Script-Related-HTML-Tag

如果您对如何更新我的代码有任何想法,我们期待您的答复。

1 个答案:

答案 0 :(得分:0)

API返回的html被视为不安全或“污染”。这就是为什么在将其作为HTML注入DOM时被标记的原因。

如果您有能力更改API或编写新的API,则一种解决方案是制作一个API,该API返回表的数据而不是html表本身。然后,您可以使用jquery .text()方法将数据插入在JavaScript中创建的表中。通过使用text方法,您将消除注入API返回的任意html或脚本的可能性。

或者,绝对要确保表中包含的所有数据均已正确转义,并且在缓解发现之前,没有XSS来自此表的可能性。