gpt4 book ai didi

java - header 操作 : SMTP

转载 作者:太空宇宙 更新时间:2023-11-04 10:17:47 24 4
gpt4 key购买 nike

我遇到了一个问题,由于

,fortify 失败了

Header Manipulation: SMTP

我尝试了多种解决方案。然而,fortify 仍然失败。

我的代码如下:

@Override
public Map<String, String> sendEmail(EmailBody parameters, String form) {
Map<String, String> result = new HashMap<>();
String emailSubjectValue = parameters.getEmailSubject();

// Check email subject for Manipulation

if (isHeaderInjection(emailSubjectValue)) {
result.put("error", "invalid email Subject");
return result;
}

try{
....
message.setSubject(emailSubjectValue, "UTF-8");
}...

private static boolean isHeaderInjection(String value) {
if (value == null)
return false;
else if ((value.indexOf('\n') != -1 || value.indexOf('\r') != -1) || value.indexOf("%0A") != -1) {
return true;
}
return false;

}
}

即使我在设置 emailSubject 之前进行了检查,扫描仍然失败。

如果有解决办法请告诉我?

谢谢

最佳答案

据我所知,您必须避免邮件主题内出现任何 CRLF

由于当应用程序在其输出中包含恶意数据时会出现 SMTP header 操纵漏洞,因此一种逻辑方法是在 header 上下文中使用数据之前立即验证数据,并确保不存在可能破坏 header 结构的非法 CRLF 字符。

在设置主题之前,您可以使用以下方法确保不会发生这种情况:

String normalizedSubject = StringUtils.normalizeSpace(emailSubjectValue);

关于java - header 操作 : SMTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51484659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com