防止開放重定向漏洞可以使用下面三種辦法:
不在web應用程序中使用任何重定向,這是最好的解決辦法。
使用固定目標頁面列表。將其完整的URL存儲在數據庫表中,并使用標識符作為請求參數而不是URL本身來調用它們。例如,存儲http://example2.com在數據庫表與標識符42,然后使用下面的呼叫重定向到example2.com:https://example.com /重定向.php ?redir_id = 42。
http://example2.com
example2.com:https://example.com /
php ?redir_id = 42
如果您不能使用固定的重定向目標列表,請過濾不受信任的輸入,如果可以,請使用白名單,而不是黑名單。確保檢查部分字符串,例如http:// example.com .evil.com是有效的URL。此外,禁止使用除HTTP和HTTPS之外的所有協議。另請注意,盡管您盡了最大的努力,攻擊者還是有可能找到繞過您的過濾器的方法。
http:// example.com .evil.com
回答所涉及的環境:聯想天逸510S、Windows 10。
防止開放重定向漏洞可以使用下面三種辦法:
不在web應用程序中使用任何重定向,這是最好的解決辦法。
使用固定目標頁面列表。將其完整的URL存儲在數據庫表中,并使用標識符作為請求參數而不是URL本身來調用它們。例如,存儲
http://example2.com在數據庫表與標識符42,然后使用下面的呼叫重定向到example2.com:https://example.com /重定向.php ?redir_id = 42。如果您不能使用固定的重定向目標列表,請過濾不受信任的輸入,如果可以,請使用白名單,而不是黑名單。確保檢查部分字符串,例如
http:// example.com .evil.com是有效的URL。此外,禁止使用除HTTP和HTTPS之外的所有協議。另請注意,盡管您盡了最大的努力,攻擊者還是有可能找到繞過您的過濾器的方法。回答所涉及的環境:聯想天逸510S、Windows 10。