2013-06-20 1 views
0

나는 AJAX 로그인 양식을 작성 중입니다. 제출시 로그인 데이터를 백엔드로 보냅니다. 로그인에 문제가 있으면 적절한 응답이 반환됩니다. 로그인 데이터가 유효한 경우 백엔드는 사용자 세션을 만들고 사용자가 리디렉션되어야하는 URL을 되돌려 보냅니다. 여러 사용자 설정 (언어, 개인/비즈니스 등)에 따라 변경되기 때문에 URL을 반환하고 싶습니다.반환 된 URL (보안)로 리디렉션되는 AJAX 로그인

이 접근법의 보안 문제는 간과 되었습니까? 브라우저가 AJAX 호출에서 반환 된 URL을 신뢰하면 공격자가 악의적 인 웹 사이트로 사용자를 리디렉션 할 수 있습니까?

답변

2

아니요, 비동기 처리기를 통한 로그인을 처리하는 데 매우 표준적인 방법입니다 (HTTPS를 통해이를 수행 중이라고 가정 할 경우 모든 베팅이 해제 됨).

그리고 예, 공격자가 리다이렉트가 설정된 위치를 설정하도록 허용 한 경우 사용자를 리디렉션 할 수 있습니다.

그래서 사용자가 입력 한 (따라서 잠재적으로 공격자가 설정 한) URL이 유효한지 확인하기 위해 리디렉션 할 것인지 확인해야한다는 의미입니다. 기본적으로 URL이 도메인에 있는지 확인하고 올바른 URL인지 확인하십시오. 더 깊게 갈 수 있지만 (XSS 스타일 공격 등을 확인하십시오.), 나머지 응용 프로그램에서 좋은 보안 관행을 연습 할 때까지 기다려서는 안됩니다.

하지만 다시 한 번 기본 응용 프로그램 보안 필터 인, 탈출 아웃입니다. 그래서 입력 된 URL을 필터하면 괜찮을 것입니다 ...

+0

이 모든 것, 추가 된 안전을위한 HTTPS – Alex

+0

예, 이미 HTTPS에서 HTTP 전용 보안 쿠키가 있습니다. – arnaslu

+0

고마워요 @Alex, 추가됨! – ircmaxell

관련 문제