防止公開重定向 (Open Redirect)

公開重定向(又稱未驗證的重定向和轉發)是一個 URL 重定向漏洞。攻擊者可利用該漏洞將用戶從可信任的網站重定向到存在安全隱患的協力廠商網站,並通過釣魚攻擊竊取他們的驗證憑據。應對該漏洞,我們建議配置 Plesk 限制 URL 重定向。

failure_redirect_url 參數給該漏洞提供了侵入的可能,在您設定自動登入 Plesk會使用到該參數。該參數包含一個或多個在用戶登入或登出失敗後會被重定向到的主機名稱。

該漏洞會影響所有的 Plesk 伺服器,不管是已經設定了自動登入 Plesk 的還是沒有設定的。要防禦該漏洞,您需要添加一項到 panel.ini 文件。該項的具體內容取決於是否設定了自動登入 Plesk。

如果未設定自動登入 Plesk,要保護 Plesk 抵禦公開重定向,需執行如下操作:

添加以下各行到 panel.ini 文件:

[security]
trustedRedirectHosts =

trustedRedirectHosts 行為空且未指定主機。通過該方式您可禁止 Plesk 使用 failure_redirect_url 參數重定向到任何主機。

如果已設定自動登入 Plesk,要保護 Plesk 抵禦公開重定向,需執行如下操作:

按照下面的模式添加一項到 panel.ini 文件:

[security]
trustedRedirectHosts = hostname

其中 hostname 是允許通過 failure_redirect_url 參數實現 URL 重定向到的可信任的主機。

trustedRedirectHosts 設定接受由逗號隔開的一個或多個主機名稱,格式如下:

  • 一個域名,例如 example.com
  • 一個 IP 位址,例如 10.58.58.100
  • 萬用字元子域名,例如 *.example.com

注意: 當在 trustedRedirectHostsfailure_redirect_url 中指定主機名稱時,根據上述模式只使用星號 (*) 字元 (*.example.com)。否則您的伺服器仍可能被漏洞影響。例如,主機名稱 example.*203.0.113.* 不安全,因為它們會分別匹配 example.maliciouswebsite.com203.0.113.maliciouswebsite.com

以下是 trustedRedirectHosts 設定(在 panel.ini 文件中)的有效示例:

[security]
trustedRedirectHosts = example.com,10.58.58.100,*.example.com

其中 example.com10.58.58.100*.example.com 是用於 failure_redirect_url 參數中的主機。

注意: 當在 trustedRedirectHosts 中指定多個主機名稱時,不要在分隔主機名稱的逗號前後使用空白 ( ) 字元。否則將不會正確處理主機名稱且 URL 重定向將失敗。