728x90
황당하게도 잘 돌아가던 코드가 안되서 갑자기 동작하지 않는 일이 생겼습니다.
도무지 뭐가 문제인지 알수 없어서 이것저것 찾으며 응답헤더, 요청헤더 등도 살펴보길 몇시간...
Set-Cookie 쪽에 노란색 느낌표가 떠잇고 쿠키를 덮어썼다는 내용이 있었습니다.
구글링을 한참 한뒤에야 뭐가 문제인지 알았습니다.
결론은 CSRF 공격을 막기 위해 SameSite 설정이 추가되면서 생긴 문제였습니다.
결정적으로 알게된건 파폭에서는 해당 문제가 발생하지 않는 것을 알고, 크롬의 헤더에 뭔가 문제가 있다고 판단해서 들여다보고 알게 됐구요.
가장 간단하게 해결하려면 SameSite가 크롬의 Default값인 Lax로 설정된 경우 SSL을 적용하는 방법이였습니다.
이 사실을 모르고 SameSite를 None으로 바꿔보기도하고 HTTP ONly로 헤더를 보내도록 해보기도하였지만
역시 크롬은 강력했습니다.
바꿀때마다 보안 네트워크 상에서 데이터를 전송해야한다는 둥 여러 경고메시지를 보내며 기존에 잘 되던 로그인 기능의 동작을 허용해주지 않았습니다.
저는 강력한 크롬의 보안에 무릎꿇고 개발용 서버에도 ssl을 적용 하였고 현재는 정상적으로 동작하는 것을 확인했습니다.
728x90
'IT > Django' 카테고리의 다른 글
django timezone과 시간 안맞는 경우 (0) | 2021.03.29 |
---|---|
django datetime Asia/Seoul LMT+8:28:00 STD Why not KST+9:00 (2) | 2021.03.17 |
BrowsableAPI AttributeError 해결방법. (0) | 2021.03.13 |
Django ORM makemigrations과 migrate 차이 및 사용자 절차(커스텀) 적용 방법. (0) | 2021.02.26 |
DJANGO 보안의 중요성 - GPON 공격 (2) | 2021.02.16 |