[python] Flask-WTF에서 CSRF 토큰을 어떻게 생성하고 검증할 수 있나요?
CSRF 토큰을 생성하려면 flask_wtf.csrf.generate_csrf
함수를 사용합니다. 이 함수는 특정한 요청에서 CSRF 토큰을 생성하여 반환합니다. 다음은 Flask-WTF를 사용하여 CSRF 토큰을 생성하는 예제 코드입니다.
from flask_wtf.csrf import generate_csrf
@app.route('/some_form')
def some_form():
csrf_token = generate_csrf()
return render_template('some_form.html', csrf_token=csrf_token)
위 코드에서 generate_csrf
함수를 호출하여 csrf_token
값을 얻은 후, 해당 토큰을 템플릿(render_template)으로 전달하여 사용자에게 보여줍니다.
CSRF 토큰을 검증하려면 flask_wtf.csrf.validate_csrf
함수를 사용합니다. 이 함수는 특정한 요청에서 전달받은 CSRF 토큰을 검증하고, 유효하지 않을 경우 BadRequest
익셉션을 발생시킵니다. 다음은 Flask-WTF를 사용하여 CSRF 토큰을 검증하는 예제 코드입니다.
from flask_wtf.csrf import validate_csrf
@app.route('/submit_form', methods=['POST'])
def submit_form():
csrf_token = request.form.get('csrf_token')
validate_csrf(csrf_token)
# CSRF 토큰 검증이 성공한 경우, 폼 데이터 처리 로직을 작성합니다.
return 'Form submitted successfully.'
위 코드에서 validate_csrf
함수를 호출하여 csrf_token
값을 검증하고, 유효하지 않을 경우 BadRequest
익셉션을 발생시킵니다. 이후에는 CSRF 토큰 검증이 성공했기 때문에, 폼 데이터 처리 로직을 작성할 수 있습니다.
Flask-WTF를 사용하면 간편하게 CSRF 토큰을 생성하고 검증할 수 있으며, 이를 통해 웹 애플리케이션의 보안을 강화할 수 있습니다.
참고자료: