【发布时间】:2020-01-24 09:11:53
【问题描述】:
Fortify 正在标记与此类似的行
session.setAttribute("foo", "bar")
对于 .NET,这里有一个类似的问题,答案是“误报”,因为文档要求值必须实现 ISerializable,而 String 没有。但在 J2EE 版本的文档中,它必须只实现 Serializable。哪个字符串可以。
问题是它是一个字符串文字吗?以下内容会消除 Fortify 消息吗?
session.setAttribute("foo", new String("bar"))
更新 我有三个 Fortify 警告,它们都是字符串文字。 它似乎不介意字符串属性,例如以下通行证:
session.setAttribute("foo", myObject.myString)
【问题讨论】:
-
看起来像 Fortify 中的一个错误。对于一个非常基本的功能。或者您的“与此类似的行”并不是很相似。请显示更多有代表性的代码。
-
@Thilo 非常相似。我只是替换了这两个文字以保护我公司的身份。还有 3 个单独的 Fortify 示例,在所有三种情况下,放入会话中的值都是字符串文字。它不会抱怨 String 属性,例如myObject.myString 通过。
-
好吧,如果它们都是字符串文字,那么这是 Fortify 中的一个错误。也许通过将它们移动到
private static final String字段来更改它以添加间接性会使其脱离。 -
具体来说,从这个角度来看,
"string literal"和new String("string literal")之间完全没有区别,任何声称存在的软件或人都不知道它在说什么关于。
标签: java string jakarta-ee literals fortify