防止公開重定向 (Open Redirect)
公開重定向(又稱未驗證的重定向和轉發) 是一個 URL 重定向漏洞。攻擊者可利用該漏洞將用戶從可信任的網站重定向到存在安全隱患的協力廠商網站,並通過釣魚攻擊竊取他們的驗證憑據。應對該漏洞,我們建議配置 Plesk 限制 URL 重定向。
success_redirect_url
和 failure_redirect_url
參數給該漏洞提供了侵入的可能,在您設定 自動登入 Plesk 會使用到該參數。success_redirect_url
參數包含一個或多個在成功登入後用戶會被重定向到的主機名,而failure_redirect_url
包括在登入嘗試失敗或註銷後會被重定向的主機名。
該漏洞可能會影響所有的 Plesk 伺服器,不管是已經設定了自動登入 Plesk 的還是沒有設定的。要防禦該漏洞,您需要添加一項到 panel.ini 文件。該項的具體內容取決於是否設定了自動登入 Plesk。
如果未設定自動登入 Plesk,要保護 Plesk 抵禦公開重定向,需執行如下操作:
添加以下各行到 panel.ini 文件:
[security]
trustedRedirectHosts =
trustedRedirectHosts
行為空且未指定主機名。通過該方式您可禁止 Plesk 使用 success_redirect_url
和 failure_redirect_url
參數重定向到任何主機名。
如果已設定自動登入 Plesk,要保護 Plesk 抵禦公開重定向,需執行如下操作:
按照下面的模式添加一項到 panel.ini 文件:
[security]
trustedRedirectHosts = hostname
其中 hostname
是一個可信的主機名,是您允許通過success_redirect_url
和failure_redirect_url
參數進行URL重定向到的主機名。
trustedRedirectHosts
設定接受由逗號隔開的一個或多個主機名稱,格式如下:
- 一個域名,例如
example.com
- 一個 IP 位址,例如
192.0.2.1
- 萬用字元子域名,例如
*.example.com
備註: 當在 trustedRedirectHosts
中指定主機名稱時,根據上述模式只使用星號 (*) 字元 (*.example.com
)。否則您的伺服器仍可能被漏洞影響。例如,主機名稱 example.*
或 192.0.2.*
不安全,因為它們會分別匹配 example.maliciouswebsite.com
和 192.0.2.maliciouswebsite.com
。
以下是 trustedRedirectHosts
設定(在 panel.ini
文件中)的有效示例:
[security]
trustedRedirectHosts = example.com,192.0.2.1,*.example.com
其中 example.com
、 192.0.2.1
、 *.example.com
是用於 success_redirect_url
和 failure_redirect_url
參數中的主機名。
備註: 當在 trustedRedirectHosts
中指定多個主機名稱時,不要在分隔主機名稱的逗號前後使用空白 ( ) 字元。否則將不會正確處理主機名稱且 URL 重定向將失敗。