Django CSRF token 에러

Web 2023. 1. 5. 10:59

후후.... 보안 관련 에러인데 찾아보니 내용이 너무 많다.

상당히 복잡하다....

 

CSRF란 #$%&, 원인이 #$%^#, 대안 방법이 블라블라.... 너무 복잡했다.

다른 건 별로 안 궁금하고 내가 원하는 것은 저 에러가 없어지는 것이다.

 

크게 방법은 두가지를 추천했다.

- 예외처리

- html 헤더에 csrf 코드 넣기

 

예외처리는 좀 위험해 보여서 html 헤더에 넣는 방법으로 처리하기로 했다.

 

 

------------------------------------------------------

html 헤더에 csrf 코드 넣기 방법 2가지!

------------------------------------------------------

- html 에 넣기 -

- javascript 에 넣기 -

 

결국 둘 다 form 안에 csrf 코드를 넣어주는 원리는 같고 아래와 같이 한다.

 

1. html 에 넣기

form 안에 {% csrf_token %} 를 넣어주면 됨

 

 

2. javascript 에 넣기

소스)
    var form = document.createElement('form');
    form.setAttribute('method', 'post');
    form.setAttribute('action', '/data/');
    document.charset = "UTF-8";

    var hiddenField = document.createElement('input');
    hiddenField.setAttribute('type', 'hidden');
    hiddenField.setAttribute('name', 'csrfmiddlewaretoken');
    hiddenField.setAttribute('value', '{{csrf_token}}');
    form.appendChild(hiddenField);
 
    document.body.appendChild(form);
    form.submit();

빨강 박스 처럼 넣어주면 끝ㅋ

 

 

아래 참고 글들에서 Django 공식문서를 확인하여

javascript로 csrf를 생성해주는 코드를 만들어서

헤더에 붙여준다고 하는데...

좀 복잡해 보여서 우연히 1번에 html로 붙이는 코드는

사용자에게서 어떻게 보일까 궁금해서 코드를 보았는데

이렇게 input 박스가 생성된 것을 보고 2번과 같이 생성해 주니 잘 됐다ㅋㅋㅋ

코딩 잼네ㅋㅋㅋ

 

 

 

혹시 저 코드가 실행이 안된다면 셋팅이 덜 되어서 그럴 수도 있다.

최신 버전에는 기본으로 셋팅이 되어 있어서 생략했는데 (내 환경도 기본으로 셋팅되어 있었다)

아래 참고 사이트에서 기본 셋팅을 확인하고 가도 괜찮을 것 같다.

 

 

 

 

참고

Forbidden (CSRF token mis.. : 네이버블로그 (naver.com)

히즈웨드 장고(Django) 개발: 폼(Form) 관리와 CSRF 취약점 해결 (tistory.com)

[django] Forbidden (CSRF token missing or incorrect.) 해결하기! by Codong's Development Diary (tistory.com)

 

 

설정

트랙백

댓글

ST-link v2 readout protection (RDP) 설정

Embedded/펌웨어? 2022. 12. 5. 21:14

한번씩 STM칩을 만지는데

그때마다 flash 읽기 방지를 까먹는다ㅋㅋ;

 

 

아래 그림에 Read Out Protection을 설정하면

Flash 읽기를 방지할 수 있다.

Level 0 : 읽기, 쓰기 모두 가능

Level 1 : 쓰기 가능, 읽기 불가능

Level 2 : 모두 불가능

 

Level 2는 돌이킬 수 없기에 매우매우 고심하여 셋팅해야 한다

특별한 경우 아니면 Level 1만 해도 충분하지 않을까 싶다ㅋ

 

 

자료를 찾아보니 저걸 뚫고 해킹하는 것들도 있던데....

다음에 또 기회가 되면 해봐야겠다ㅋ

 

'Embedded > 펌웨어?' 카테고리의 다른 글

USBISP-MK2 Manual  (0) 2020.06.16
C 예제) AES-128 ECB  (1) 2019.06.10
stm32f05xx CRC  (0) 2019.04.16

설정

트랙백

댓글

무료 SSL 인증 사이트. Let's Encrypt

Web 2022. 11. 23. 19:40

이번에 http 서버를 개발하면서

https를 적용시킬 차례이다.

 

SSL 인증은 예전에 리눅스에서 만질때 좀 만져보고

간만에 보게 됐는데, 그때 기억으로 손 쉽게 했으니

별거 없다고 생각했지만.............

 

한국전자인증? 에서 인증서를 받아야 한다.

유료.

그리고 인증서 종류도 여러개 있던데 골치 아프다

 

자료를 찾아보니

책임 소재가 생길만한 정보를 다룰 때나 쓰지

굳이 유료 SSL을 사용하지 않아도 괜찮다고는 한다.

회사에서 쓰는거면 그냥 사서 쓰는 것도 추천하는 글도 있었다.

 

아무튼 무료 SSL 사이트를 찾아보니

Let's Encrypt 라는 곳이 있다

세계적!! 규모의 TLS 공인 인증서라고 한다.

 - Let's Encrypt (letsencrypt.org)

 - Let's Encrypt - 나무위키 (namu.wiki)

 

 

 

그런데 한국전자인증에 돈 주고 한 건 안비밀ㅋㅋㅋㅋㅋㅋ

'Web' 카테고리의 다른 글

Django CSRF token 에러  (0) 2023.01.05
nginX + waitress + django(python) 웹서비스 구축(Windows)  (2) 2022.10.08

설정

트랙백

댓글