[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정
01. pybo - CSRF
config\settings.py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
django.middleware.csrf.CsrfViewMiddleware 활성화
question_form.html
{% extends 'base.html' %}
{% block content %}
<div class="container">
<h5 class="my-3 border-bottom pb-2">질문 등록</h5>
<form method="post" class="post-form my-3">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="btn btn-primary">저장하기</button>
</form>
</div>
{% endblock %}
장고의 경우 프레임워크에서 CSRF 토큰을 활용함
템플릿에 {% csrf_token %} 넣기
- 전역적으로 비활성화
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
- 부분적으로 비활성화
뷰 함수에 @csrf_exempt 데코레이터를 추가
→ csrf토큰이 없거나 변조되어도 질문 등록이 가능해짐
728x90
'Rookies > 애플리케이션 보안' 카테고리의 다른 글
[SK shieldus Rookies 19기] 파일 업로드 / 경로 조작 취약점 - bWAPP bee.box - Unrestricted File Upload (0) | 2024.03.31 |
---|---|
[SK shieldus Rookies 19기] Cookie / Session (1) | 2024.03.30 |
[SK shieldus Rookies 19기] bWAPP bee.box - 크로스 사이트 요청 위조 (CSRF) (0) | 2024.03.30 |
[SK shieldus Rookies 19기] 크로스 사이트 요청 위조 (CSRF) (0) | 2024.03.30 |
[SK shieldus Rookies 19기] Django pybo - Cross-Site Scripting (Stored) (0) | 2024.03.30 |