登录到登录表单中提供的URL后重定向用户有哪些安全问题?

Cha*_* Ma 5 security redirect login

我的网站上有一个成员区域,如果用户未登录,则会将其重定向到登录URL,其中包含?redirect = [CURRENT_URL],一旦成功登录,它们就会重定向回[CURRENT_URL].

这种方法存在哪些潜在的安全问题,如何预防它们以及有哪些替代方案?

例如,恶意用户可以通过指向另一个站点的重定向链接链接到我的站点,其他站点是否能够窃取我用户的登录cookie?使用这种方法可以在我的网站上运行任意javascript吗?

MJB*_*MJB 2

如果当前网址未经过编辑,您可能会受到

  • XSS(窃取cookie、注入脚本)
  • 响应头拆分

ETC

如果您知道当前 URL 是常量并且没有参数,那么风险就不那么大了。一旦您添加参数或根据用户输入创建 URL,棘手的事情就会随之而来。

XSS 的一个简单示例:

假设您的网址可以通过用户输入注入查询字符串。那么是什么阻止他们说

redirectUrl="yoursite.jsp?somevariable="alert('恶意软件')");或redirectUrl="yoursite.jsp?somevariable="alert(document.cookies)");

并窃取您的cookie或执行其他邪恶的java脚本。

响应分裂更加复杂。基本上,如果你可以注入 CRLF,你就可以做一些非常古怪的事情。

维基百科对此漏洞有一个不错的解释 - 您可以通过谷歌搜索 http 响应拆分来找到其他漏洞。

我遗漏了最明显的攻击,即如果用户可以控制 url,他们就可以访问与您的网站类似的网站,并说服用户输入信用卡、凭据等。例如,如果您是一家银行,有人可以注入

重定向URL =“http://myfakebank.com”

并复制您的页面,天哪,用户会很高兴地说“当然,我会重新输入我的凭据”