2017-03-13 4 views
1

리디렉션 목적으로 사용자 앱에서 수락 한 URL을 이스케이프 처리해야합니까 (이 질문과 같이 로그인이 성공한 경우)? 그렇지 않으면 보안 취약점이 있습니까?로그인 후 이스케이프 처리되지 않은 URL로 리디렉션되는 보안 의미

긴 질문 (코드 리뷰) : - (passportjs 포함) 내 웹 애플리케이션에 페이스 북의 로그인을 구현, 내가 세션의 반환 URL을 설정하는 작은 미들웨어 기능에 대한 다음과 같은 구현을 통해 온

동안.

function checkReturnTo(req, res, next) { 
    var returnTo = req.query['returnTo']; 
    if (returnTo) { 
    req.session.returnTo = querystring.unescape(returnTo); 
    } 
    next(); 
} 

위의 'returnTo'URL을 이스케이프 처리하지 않으면 어떻게됩니까?

req.session.returnTo = returnTo; 

이 코드는 두 경우 모두 정상적으로 작동합니다. Google에 시도했지만 리디렉션 URL을 통해 특정 악용 사례를 찾을 수 없습니다. 나는 그것이 좋은 질문을 할 것이라고 생각했다.

답변

1

실제로는 이지만, 이스케이프 처리 및 이스케이프 처리는 URL과 관련이 없습니다.

일반적으로 프레임 워크에서 URL 매개 변수를 올바르게 추출하고 이스케이프 처리하지 않으면 두 번째 이스케이프 처리를 수행 할 필요가 없습니다 (물론 로그인 URL을 생성하는 코드가 어떤 이유로 리디렉션 URL을 중복 이스케이프하지 않는 한)). 그러나 저는 여러분이 사용하고있는 프레임 워크에 대해 특별히 잘 알고 있지는 않습니다. 따라서 이상한 이유로 여기에 필요한 것이 있는지 확실하게 말할 수는 없습니다.