下面是我的代码。我不认为有任何问题。
我怎么能骗过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)发布于 2019-04-16 14:08:50
你只需要把索引解析成整数即可
activeIndexObj[parseInt(index)] = newVal黑客可能会注入函数或原型链接,这就是为什么会出现这个安全错误。
发布于 2018-08-07 16:45:37
@luca (Why is it bad pratice calling an array index with a variable?)在注释上链接的问题解释了使用变量访问数组索引的问题。是个安全问题。
如果允许将未经验证的输入用作数组索引,则应用程序可能会崩溃。即使您验证了索引,重构代码并跳过验证也只是个时间问题。因此,建议避免使用此类代码。一个推荐的解决方案是使用地图:https://stackoverflow.com/a/44882765/4398050
如果您不想了解此问题,可以忽略codacy UI中的问题:https://support.codacy.com/hc/en-us/articles/207279979-Issues#2-remove-pattern
https://stackoverflow.com/questions/51715616
复制相似问题