java - 字符串文字和 J2EE 不良做法:存储在会话中的不可序列化对象
问题描述
Fortify 正在标记与此类似的行
session.setAttribute("foo", "bar")
对于 .NET,here 有一个类似的问题,答案是“误报”,因为文档要求值必须实现 ISerializable,而 String 没有。但在 J2EE 版本的文档中,它必须只实现 Serializable。哪个字符串可以。
问题是它是字符串文字吗?以下内容会消除 Fortify 消息吗?
session.setAttribute("foo", new String("bar"))
更新 我有三个 Fortify 警告,它们都是字符串文字。它似乎不介意字符串属性,例如以下传递:
session.setAttribute("foo", myObject.myString)
解决方案
问题是它是
String
文字吗?
不,两者都是对象,"bar"
并且都是可序列化的,因为它们的类都实现了。new String("bar")
String
java.io.Serializable
以下内容会消除 Fortify 消息吗?
你告诉我。如果这些都不起作用或只有其中一个起作用,那么这是 Fortify 的问题,而不是您的问题。
也许它是对不同文字问题的警告String
,例如使用文字而不是常量。
推荐阅读
- django - 如何使用 django autocomplete-light 在存储值中添加一些 css?
- java - 不显示没有标题的网络推送通知
- python - 如何为所有 Django 字段添加额外的关键字参数?
- python - 为什么代码无法识别分配的变量?
- r - 我可以将曲线趋势线添加到每列只有一个数据点的 ggplot 吗?
- android - 将对称密钥导入 Android Keystore(外部生成的密钥)
- c# - Wpf 共享图像内存
- javascript - 如何获得带有垂直子图的分组箱线图
- r - 在 R 中创建比例图
- c# - 使用 Razor Pages 中的约定按区域按不同方案进行授权