[python] Flask-WTF에서 CSRF 토큰을 생성하고 검증하는 방법은 어떻게 되나요?
- Flask와 Flask-WTF를 설치합니다.
pip install Flask Flask-WTF
- Flask-WTF를 사용하여 CSRF 토큰을 생성합니다. ```python from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.csrf.session import SessionCSRF
FlaskForm을 상속받는 폼 클래스를 생성합니다.
class MyForm(FlaskForm): name = StringField(‘Name’) submit = SubmitField(‘Submit’)
폼 인스턴스를 생성합니다.
form = MyForm(meta={‘csrf’: True})
CSRF 토큰을 얻습니다.
csrf_token = form.csrf_token.current_token
CSRF 토큰을 폼 데이터와 함께 전송합니다.
3. Flask-WTF를 사용하여 CSRF 토큰을 검증합니다.
```python
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.csrf.session import SessionCSRF
from wtforms.validators import InputRequired
# FlaskForm을 상속받는 폼 클래스를 생성합니다.
class MyForm(FlaskForm):
name = StringField('Name', validators=[InputRequired()]) # 입력 필드에 유효성 검사기를 추가합니다.
submit = SubmitField('Submit')
# 폼 인스턴스를 생성합니다.
form = MyForm(meta={'csrf': True})
# 폼 데이터를 받아서 유효성 검증을 수행합니다.
if form.validate_on_submit():
name = form.name.data
# 폼 데이터 처리 로직을 추가합니다.
else:
# 유효성 검증 실패 시 에러 처리 로직을 추가합니다.
이렇게 Flask-WTF를 사용하여 CSRF 토큰을 생성하고 검증할 수 있습니다. Flask-WTF는 보안을 위해 CSRF 공격을 방지하는 기능을 제공하므로, CSRF 토큰을 적절히 활용하여 웹 응용 프로그램의 보안을 강화할 수 있습니다.
더 자세한 내용은 Flask-WTF의 공식 문서를 참고하세요: