我目前正在用Javascript开发一个小游戏,并且正在使用Codacy查看我的代码并帮助我清理它。
最常见的错误之一是通用对象注入接收器(安全性/检测对象注入)。
当我尝试使用变量访问数组中的值时,就会发生这种情况。像这个例子:
function getValString(value)
{
var values = ["Misérable", "Acceptable", "Excellente", "Divine"];
return values[value];
}
Run Code Online (Sandbox Code Playgroud)
此功能用于在屏幕上显示项目的值字符串。它接收一个可以为0、1、2或3的“值”,并返回该值的字符串。
现在这是我的问题:
Codacy告诉我应该禁止使用var [var],因为它会引起安全问题,并且由于我对javascript不太熟悉,所以我想知道为什么以及在这种情况下的良好做法是什么?
下面是我的代码。我不认为有任何问题。
我怎么能骗过codacy?如果我不能使用obj[key],那这到底是什么东西?我没有办法避免[]。
handleClick = (e, titleProps) => {
const { index } = titleProps
const newVal = this.state.activeIndexObj[index]? false: true
let activeIndexObj = {...this.state.activeIndexObj}
activeIndexObj[index] = newVal
// Generic Object Injection Sink (security/detect-object-injection)
Run Code Online (Sandbox Code Playgroud)