首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >替代BeanUtils SonarQube(错误SonarQube)

替代BeanUtils SonarQube(错误SonarQube)
EN

Stack Overflow用户
提问于 2021-03-04 14:55:13
回答 1查看 554关注 0票数 1

我目前正在寻找一种将属性动态设置为对象的方法,我有以下内容:

代码语言:javascript
代码运行次数:0
运行
复制
public static void assign(Object instance, String attribute, Object value) {
    try {
        if (value != null) {
            BeanUtils.setProperty(instance, attribute, value);
        }
    } catch (IllegalAccessException | InvocationTargetException ex) {
        throw new TechnicalException(ex.getMessage(), ex);
    }
}

但是Sonarqube给了我一个错误:

“确保在这里设置JavaBean属性是安全的。”

因此,我需要一种动态填充对象的替代方法,或者一种在"BeanUtils.setProperty“中避免异常的方法(避免异常,因为由于项目的性质,不存在漏洞的风险)。

或者以某种方式接收对象,并通过动态转换值的数据类型来分配具有特定值的字段。

有什么想法吗?

事先非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-04 17:01:18

sonarqube的信息更多的是警告您的代码存在潜在的安全问题。当您让用户传递一个参数时,情况就是这样,该参数直接注入到该属性中。当这是您的使用程序时,您需要验证/清除用户输入,以避免潜在的风险。

当你确认这不是一个风险,而且这似乎是你的情况

,因为由于项目的性质,不存在漏洞的风险

在代码中

可以用SuppressWarnings注释您的方法,以及要忽略的警告的引用。

代码语言:javascript
代码运行次数:0
运行
复制
@java.lang.SuppressWarnings("java:S4512")

声纳

由于这是一个安全热点,您也可以在声纳中标记这是检查和安全的。您可以在项目失败的安全热点中执行此操作,并将其标记为“安全”。

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

https://stackoverflow.com/questions/66477551

复制
相关文章

相似问题

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