코딩,해볼까

06.28. 최종 프로젝트 / forbidden 403 : admin 페이지 접근 불가 본문

Back/TIL

06.28. 최종 프로젝트 / forbidden 403 : admin 페이지 접근 불가

떠굥 2023. 6. 29. 18:32

1.  문제점

시작은 잘못된 더미 데이터를 수정하려는 것이었다.

admin에 접근이 되지만 수정과 삭제가 되지 않았다.

FOBIDDEN? 오류가 계속해서 생겼다. csrf 때문이라고 하는데.. 내가 알고 있는 설정은 모두 마쳤던 상태이다.

2. 시행착오

순서와 절차가 정말 중요한 코딩의 세계.

작업을 시작하기 전에 계획을 세워 순서대로 진행해보기로 했다.

1. settings.py 점검 > .env 점검 >  docker-compose.yml 점검 > Dockerfile 점검

settings.py를 작업하다가 무한로딩 현상을 겪었다.

꼭 vs코드에서 작업해서 같이 올리자.

Docker registry in “Restarting (1) ” status forever

Docker registry in "Restarting (1) " status forever

 

2. docker compose logs -f  로 로그를 계속해서 찍어보면서 문제 찾기

nginx 설정

[Nginx] 기본 설정 방법

 

3. csrf 설정 관련 구글링

headers: { "X-CSRFToken": '{{csrf_token}}' } 을 POST마다 실어서 보내봤다. 하지만 작동하지 않았다.

https://docs.djangoproject.com/en/4.2/ref/csrf/

https://codong.tistory.com/28

 

4. 장고 settings.py에서 csrf middlewear를 삭제했다.

https://velog.io/@mquat/django-CORS-same-origin-policy-cross-origin-resource-sharing

cors가 잘 되어있으면 csrf가 없어도 된다고 하여 삭제했지만.. csrf에 대해 좀 더 알아보고 살려보고 싶다.

3. 해결방법

어떤 방법도 이 문제를 해결하지 못했다. 

튜터님과 상의해보기로 했다.

4. 알게된 점

배포 후 DB를 수정하는 것은 무척 까다롭다. 그러므로 ERD 설계 단계에서 시간을 들이더라도 정말 촘촘하게 잘 짜야 한다는 것을 느꼈다. 

중간발표 피드백


+ 07.01

드디어 해결되었다!!

어드민 접근 방법은 너무나도 쉬웠다. CORS 설정과 CSRF 설정을 해주는 것이었는데, settings.py에 headers를 추가하는 것이다. 주소에는 백엔드, 프론트엔드 홈페이지 주소를 쉼표로 구분하여 https부터 작성하였다. (ex) https://gwolnadri.com) 추가적인 작업들을 설명해둔 홈페이지도 많았지만, 아직 그것들은 적용에 성공하지 못했다.

CORS_ORIGIN_WHITELIST = [주소]

CSRF_TRUSTED_ORIGINS = CORS_ORIGIN_WHITELIST
Comments