![](/img/trans.png)
[英]Getting Server-Side Request Forgery (SSRF) (CWE ID 918) restTemplate.getForEntity
[英]Security - URLConnection Server-Side Request Forgery (SSRF) and File Disclosure
當 Web 服務器對用戶提供的未經驗證的目標參數執行請求時,就會發生服務器端請求偽造。 此類漏洞可能允許攻擊者訪問內部服務或從您的 Web 服務器發起攻擊。
URLConnection 可以與file://
協議或其他協議一起使用,以訪問本地文件系統和可能的其他服務。
如何修復此漏洞?
HttpURLConnection conn = null;
URL url = new URL(pagina);
if (!url.getProtocol().startsWith("http"))
throw new Exception();
InetAddress inetAddress = InetAddress.getByName(url.getHost());
if (inetAddress.isAnyLocalAddress() || inetAddress.isLoopbackAddress() || inetAddress.isLinkLocalAddress()) {
throw new Exception();
}
conn = (HttpURLConnection) url.openConnection();
return conn;
您可以根據系統中一組允許的 URL 驗證請求中傳遞的 URL 以進行連接。
URL url = 新 URL(頁面);
在您的情況下,您可以驗證url.getHost()
以檢查您的系統是否應該允許對該系統的請求。 一種簡單的方法是創建一個允許的 URL/地址列表,然后對它們執行驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.