我们是否需要取消从用户应用程序接受的URL以便重定向到(例如,如果登录成功,如此问题)?它们是否存在任何安全漏洞?
更长的问题(代码审查): -
在我的webapp(带有passportjs)上实现facebook登录时,我遇到了一个小型中间件功能的以下实现,该功能在会话中设置了返回URL。
function checkReturnTo(req, res, next) {
var returnTo = req.query['returnTo'];
if (returnTo) {
req.session.returnTo = querystring.unescape(returnTo);
}
next();
}
如果我没有忘记“返回”,该怎么办?上面的网址?
req.session.returnTo = returnTo;
在这两种情况下,代码都可以正常工作。我试图谷歌,但无法通过重定向网址找到任何特定的漏洞。我认为这会成为一个很好的问题。
答案 0 :(得分:1)
确实有security issues with unrestricted redirects after login,但是转义和取消网址与它们无关。
一般情况下,如果你的框架已经正确地提取和取消了URL参数,那么就不需要再次取消它们了(当然,除非生成登录URL的代码冗余地双重转义重定向URL由于某些原因)。但是,我并不是特别熟悉您正在使用的框架,因此我无法确定是否可能因某些奇怪的原因需要此处。