상세 컨텐츠

본문 제목

7. html파일

Django

by evaseo 2021. 5. 29. 18:17

본문

 

1.    db에서 넘어오는 데이터 받기

(1)     views.py에서 sql문장을 사용한 경우

1)         Tuple타입으로 데이터를 받아옴.

2)         html에서 {{변수명.index번호}}로 받아야 함

 

(2)     views.py에서 ORM기법을 사용한 경우

1)         쿼리셋 타입으로 데이터를 받아 옴

2)         html에서 {{변수명.컬럼명}}으로 받아야 함


(3)     views.py에서 DataFrameto_html()로 넘겼을 때는 {{변수명|safe}}로 받아야 한다. 아니면 태그들이 전부 문자열로 출력됨


2.    post방식의 요청을 할 때는 urls.py에서 경로 지정과 post방식 지정하는 곳에서의 경로 지정이 완전 일치해야 한다. -> 슬래시/가 붙은 것까지 똑같이 지정해야 함. 아니면 에러발생

ex) <정상>



<
에러발생>

3. CSRF 취약점 해결

 (1) CSRF(Cross Site Request Frogery)

    1) 사이트 간 요청 위조(Cross-site request forgery)라는 웹사이트 취약점 공격 중에 하나를 뜻

    2) 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다.

(2) 해결방법

    1) csrf_token: 사용자의 세션에 임의의 난수 값을 저장하고 사용자의 요청마다 해당 난수 값을 포함시켜 전송 시키고 Backend에서 요청을 받을 때 마다 세션에 저장된 토큰 값과 요청 파라미터에 전달되는 토큰 값이 일치하는지 검증하는 방법

    2) form태그 옆에 {% csrf_token %}를 입력

<form action="/sangpum/updateok/" method="post">{% csrf_token %}

 

 

<h3><a href="/">메인 화면으로 </a></h3> 주소창에 127.0.0.1로 입력하는 것은 127.0.0.1/과 같아서 href에 /만 주는 것

 

[참고] https://heiswed.tistory.com/entry/%EC%9E%A5%EA%B3%A0Django-%EA%B0%9C%EB%B0%9C-%ED%8F%BCForm-%EA%B4%80%EB%A6%AC%EC%99%80-CSRF-%EC%B7%A8%EC%95%BD%EC%A0%90-%ED%95%B4%EA%B2%B0

[참고] CSRF 무엇인가? 방어기법? (tistory.com)

'Django' 카테고리의 다른 글

9. 템플릿 언어(template language)  (0) 2021.05.29
8. Ajax  (0) 2021.05.29
6. paging 처리  (0) 2021.05.29
5. 세션 session  (0) 2021.05.29
4. Django 설정 파일  (0) 2021.05.11

관련글 더보기