我正在使用fortify,它显示了攻击者在java应用程序中获取主机名时可以进行DNS欺骗的漏洞。我有一个解决方案,通过匹配前向DNS和反向DNS条目,可以避免。但是,它是如何有用的,我如何实现它,我找不到它。Fortify显示此行的漏洞。
Fortify提供了这样的建议:
建议: 如果检查以确保主机的前向和后向DNS条目匹配,则可以增加对域名查找的信心。如果不控制目标域的名称服务器,攻击者将无法欺骗转发和反向DNS条目。然而,这不是一种万无一失的方法:攻击者可能能够说服域注册员将域移交给恶意名称服务器。基于DNS条目的身份验证是一个风险很大的命题。
我们非常感谢您的任何帮助,也欢迎其他解决方案。
提前谢谢。
发布于 2017-12-06 17:32:12
我想是这样的:
final String hostname = "google.com";
final String ipAddress = "123.123.123.123";
final InetAddress byIpAddress = InetAddress.getByName(ipAddress);
boolean forwardCheck = byIpAddress.getHostName().equals(hostname);
final InetAddress byHostName = InetAddress.getByName(hostname);
boolean reverseCheck = byHostName.getHostAddress().equals(ipAddress);
if (reverseCheck && forwardCheck) {
// perform your logic
}https://stackoverflow.com/questions/43523557
复制相似问题