2016-10-11 5 views
0

다른 서버 (예 : 123.123.123.123)를 통해 장고 응용 프로그램의 관리자 패널에 로그인하려고합니다. 나는 ssh -L 3000:my.website.com:443 [email protected]처럼 열린 SSH 터널을 가지고있다. https://localhost:3000/admin/login/으로 가서 my.website.com에서 실행중인 서버의 Django 관리자 로그인 페이지를 볼 수 있습니다. 어떤 자격 증명을 입력하든간에 HTTP 403 'CSRF 확인 결과가 실패합니다. 요청이 중단되었습니다 .` 오류 페이지.403 SSH 터널을 통해 장고 관리자에 로그인 할 때 CSRF 오류가 발생했습니다.

바로 my.website.com/admin/login/으로 갈 때이 오류가 표시되지 않습니다. 어떤 설정이 SSH 터널을 통한 로그인을 허용합니까? 이미 'localhost'에서 ALLOWED_HOSTS까지 추가하려고했습니다. CSRF 쿠키는 안전하며 항상 사용하고있는 HTTPS를 통해서만 사용할 수 있으며 HTTPOnly 플래그가 설정되어 있습니다.

답변

1

Django는 my.website.com 도메인에 액세스하려고 시도하며 해당 도메인의 쿠키를 다시 보내드립니다.

브라우저가 실제로 localhost 도메인에 액세스하고 있으므로 my.website.com의 쿠키는 유효하지 않으며 브라우저는 장고 서버로 다시 보내지 않습니다.

해결 방법 중 하나는 /etc/hosts을 사용하여 my.website.com에서 127.0.0.1을 가리키고 터널 포트를 443으로 변경하고 대신 my.website.com에 연결하는 것입니다.

또 다른 방법은 쿠키와 다른 경로를 한 도메인에서 다른 도메인으로 재 작성하는 서버를 당신과 당신의 장고 서버 사이에 설정하는 것입니다.

+0

'127.0.0.1 my.website.com'을'/ etc/hosts /'에 추가했습니다. 완벽하게 일했습니다! –