gpt4 book ai didi

java - JAVA 中 Mailadress 中 CRLF 序列 ('CRLF Injection' ) 的不正确中和

转载 作者:行者123 更新时间:2023-11-30 06:24:14 27 4
gpt4 key购买 nike

这段代码:

    InternetAddress[] myAdrs = getAdrs(message.getToAddresses());
for (int i = 0; i < myAdrs.length; i++) {
String s = myAdrs[i].getAddress();
s = s.replace("\r","").replace("\n","").replace("%0A","").replace("%0a","").replace("%0D","").replace("%0d","");
InternetAddress adr = new InternetAddress( s, false );
// --> Improper Neutralization of CRLF Sequences ('CRLF Injection') (CWE ID 93)
lMessage.addRecipient(Message.RecipientType.TO, adr);
}

尽管我用 s=s.replace(\r.... 删除了 s 中任何不需要的字符串,但仍然给了我 CWE ID 93在示例中,我发现一个网络 s=s.replace 应该是解决方案,但我仍然有这个缺陷?我想念什么?任何提示将不胜感激!

最佳答案

当 Veracode 不接受手工解决方案(例如使用 StringEscapeUtils 和简单的替换方法)时,我遇到了这种情况。尝试 ESAPI 库。 Veracode 通常接受 ESAPI 作为克服漏洞的可信工具。例如:

//need to handle ValidationException
String s = ESAPI.validator().getValidInput("User Email", myAdrs[i].getAddress(), "Email", 255, true);
InternetAddress adr = new InternetAddress( s, false );

并将正则表达式用于测试您的电子邮件到validation.properties(或您在ESAPI.properties文件中指定为Validator.ConfigurationFile=validation.properties的其他文件)文件中Validation.Email 属性。例如:

Validator.Email=^[A-Za-z0-9._%'-]+@[A-Za-z0-9.-]+\\.[a-zA-Z]{2,6}$

关于java - JAVA 中 Mailadress 中 CRLF 序列 ('CRLF Injection' ) 的不正确中和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47539281/

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