首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复codacy警报“泛型对象注入接收器”

如何修复codacy警报“泛型对象注入接收器”
EN

Stack Overflow用户
提问于 2018-08-07 05:05:06
回答 2查看 14K关注 0票数 3

下面是我的代码。我不认为有任何问题。

我怎么能骗过codacy呢?如果我不能使用obj[key],那这该死的东西是什么?我没有办法避开[]

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2019-04-16 14:08:50

你只需要把索引解析成整数即可

代码语言:javascript
复制
activeIndexObj[parseInt(index)] = newVal

黑客可能会注入函数或原型链接,这就是为什么会出现这个安全错误。

票数 14
EN

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51715616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档