我正在使用bean在Java EE应用程序中发送邮件。我发送邮件的类是通过xDoclet生成的。类代码如下
public void onMessage(javax.jms.Message message) {
MapMessage mapMsg = (MapMessage) message;
String toEmailAddress = mapMsg.getString("toAddress");
String ccEmailAddress = mapMsg.getString("ccAddress");
String from = mapMsg.getString("from");
String subject = mapMsg.getString("subject");
String content = mapMsg.getString("body");
}
现在,我在此类的checkmarx中遇到了一些安全问题,例如-在JMS中对不可信数据进行反序列化
String toEmailAddress = mapMsg.getString("toAddress");
String ccEmailAddress = mapMsg.getString("ccAddress");
最佳答案
基于对JMS中不受信任的数据进行反序列化的Checkmarx查询,在投射时添加try catch块,并检查message是否不是ObjectMessage的实例:
public void onMessage(javax.jms.Message message) {
try {
if !(message instanceOf ObjectMessage){
MapMessage mapMsg = (MapMessage) message;
String toEmailAddress = mapMsg.getString("toAddress");
String ccEmailAddress = mapMsg.getString("ccAddress");
String from = mapMsg.getString("from");
String subject = mapMsg.getString("subject");
String content = mapMsg.getString("body");
}
}
catch {}
finally {}
}