1. db에서 넘어오는 데이터 받기
(1) views.py에서 sql문장을 사용한 경우
1) Tuple타입으로 데이터를 받아옴.
2) html에서 {{변수명.index번호}}로 받아야 함
(2) views.py에서 ORM기법을 사용한 경우
1) 쿼리셋 타입으로 데이터를 받아 옴
2) html에서 {{변수명.컬럼명}}으로 받아야 함
(3) views.py에서 DataFrame을 to_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에 /만 주는 것
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 |