2017-04-20 23 views
1

我正在使用fortify,它顯示了攻擊者可以執行DNS欺騙而我嘗試在java應用程序中獲取主機名的漏洞。 我有一個解決方案,通過匹配轉發DNS和反向DNS條目,它可以避免。但是它是如何有用的,我怎樣才能實現它,我無法找到它。 Fortify的顯示在這條線的漏洞主機的正向和反向DNS條目如何在Java應用程序中匹配,使其免於DNS欺騙

Link for line

Fortify的正顯示出這樣的建議:

建議:

可以增加一個域名查找的信心,如果你檢查,以確保主機的正向和反向DNS條目匹配。 攻擊者將無法在不控制目標域的名稱服務器的情況下欺騙正向和反向DNS條目。 然而,這並非萬無一失,攻擊者可能會說服域名註冊商將域名轉交給惡意域名服務器。 對DNS條目進行身份驗證僅僅是一個冒險主張。

任何幫助表示讚賞,也歡迎其他解決方案。

在此先感謝。

+1

表現出一定的努力,你有什麼了 –

+0

爵士那是什麼我問需要實現方法來做到這一點。 –

+0

您需要使用**代碼**編輯您的問題,這會導致該工具發出警報,可能會使用'InetAddress'進行某些操作。 –

回答

0

我認爲這件事情是這樣的:

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 
    }