我通过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
https://www.codeproject.com/Questions/1062655/Improper-Neutralization-of-Script-Related-HTML-Tag
如果您对如何更新我的代码有任何想法,我们期待您的答复。
答案 0 :(得分:0)
API返回的html被视为不安全或“污染”。这就是为什么在将其作为HTML注入DOM时被标记的原因。
如果您有能力更改API或编写新的API,则一种解决方案是制作一个API,该API返回表的数据而不是html表本身。然后,您可以使用jquery .text()
方法将数据插入在JavaScript中创建的表中。通过使用text方法,您将消除注入API返回的任意html或脚本的可能性。
或者,绝对要确保表中包含的所有数据均已正确转义,并且在缓解发现之前,没有XSS来自此表的可能性。