본문 바로가기
프로젝트/Django - How Dimt?

Django poj.c B16) Security logic - 403 forbidden - 28일차

by Fola 2022. 5. 16.

Code B Django 16번 글, 프로젝트 28일차 (일)

 

2022.05.14 - [프로젝트/Django - How Dimt?] - Django poj.c A3) 타겟 유저와 유저 유인 요소, 실 서비스를 위해 필요한 숙제들 - 27일차

 

(캡쳐) 403 forbidden error page

 

 

 

 

 

1.

실 서비스를 위해 필요한 숙제 1번 보안 문제를 해결하였다.

 

 

 

2.

프로필과 자유게시판의 객체를 생성/수정/삭제 하기 위해서는 두 가지의 검증 절차를 통과하게 된다

 

1) 버튼 제어

html 코드의 {% if... %} 문을 이용하여

로그인 유저가 타깃 객체의 소유권을 가지고 있을 때만 수정/삭제 기능 버튼을 보여준다.

 

2) views 단에서의 소유권 검증

'GET' 혹은 'POST' 요청이 들어왔을 때

 로그인되어 있지 않거나 로그인 유저가 타깃 객체의 소유권을 가지고 있지 않을 때

403 forbidden error를 발생시킨다.

 

자유게시판의 글 작성의 경우 로그인 여부만 확인하며

로그인되어 있지 않을 시 로그인 페이지로 리다이렉트 시킨다.

 

html 문서에서 날아오는 정보는 웹브라우저 수준에서 얼마든지 변조가 가능하다고 들었다.

기본적으로 변조된 정보가 날아와도 오동작하지 않는 로직을 갖도록 노력했다.

또한 views의 함수나 클래스가 'GET' 혹은 'POST' 기능만 가지고 있다 하더라도

'GET', 'POST' 요청 모두에 대해 검증하는 코드를 삽입했다.

 

조심해서 나쁠 것 없다고 생각한다.

코드야 조금만 수정해서 붙여 넣으면 된다.

 

 

 

 

3.

작성한 검증 코드의 커밋 메시지 중 하나를 첨부

 

(캡쳐) 커밋 메시지

 

 

 

 

4.

코드 접근 방식은 따로 정리하여 포스팅

 

2022.05.16 - [기술기록/파이썬] - Django ) 데코레이터를 이용한 유저 검증

댓글