BeanUtils Java 的替代品(错误 SonarQube)
Alternative to BeanUtils Java (error SonarQube)
我目前正在寻找一种将 属性 动态设置到对象中的方法,我有这个:
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”中异常的方法(避免异常,因为由于项目的性质,不存在漏洞风险)。
或者通过某种方式接收一个对象,并通过动态转换值的数据类型来分配一个具有特定值的字段。
有什么想法吗?
先谢谢大家了
sonarqube 的消息更像是一个警告,表明您的代码存在潜在的安全问题。当您让用户传递参数时就是这种情况,该参数直接注入此 属性。当这是您的用例时,您需要 validate/clean 用户输入以避免潜在风险。
当您确认这不是风险时,这似乎就是您的情况
because due to the nature of the project there are no risks of vulnerabilities
代码内
您可以使用 SuppressWarnings 注释您的方法,以及要忽略的警告的引用
@java.lang.SuppressWarnings("java:S4512")
sonarqube 内
由于这是一个安全热点,您也可以在 sonarqube 中将其标记为已检查且安全。您可以在您的项目失败的安全热点中执行此操作,并将其标记为 'safe'
我目前正在寻找一种将 属性 动态设置到对象中的方法,我有这个:
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”中异常的方法(避免异常,因为由于项目的性质,不存在漏洞风险)。
或者通过某种方式接收一个对象,并通过动态转换值的数据类型来分配一个具有特定值的字段。
有什么想法吗?
先谢谢大家了
sonarqube 的消息更像是一个警告,表明您的代码存在潜在的安全问题。当您让用户传递参数时就是这种情况,该参数直接注入此 属性。当这是您的用例时,您需要 validate/clean 用户输入以避免潜在风险。
当您确认这不是风险时,这似乎就是您的情况
because due to the nature of the project there are no risks of vulnerabilities
代码内
您可以使用 SuppressWarnings 注释您的方法,以及要忽略的警告的引用
@java.lang.SuppressWarnings("java:S4512")
sonarqube 内
由于这是一个安全热点,您也可以在 sonarqube 中将其标记为已检查且安全。您可以在您的项目失败的安全热点中执行此操作,并将其标记为 'safe'