Performance: CSRF protection concept
CSRF protection mainly affects the security layer and can indirectly impact page load by adding token validation steps during form submissions.
from flask import Flask, request, render_template_string from flask_wtf import FlaskForm, CSRFProtect from wtforms import StringField app = Flask(__name__) app.secret_key = 'secret' csrf = CSRFProtect(app) class MyForm(FlaskForm): data = StringField('Data') @app.route('/form') def form(): form = MyForm() return render_template_string(''' <form method="post" action="/submit"> {{ form.csrf_token }} {{ form.data.label }} {{ form.data() }} <input type="submit" value="Submit"> </form> ''', form=form) @app.route('/submit', methods=['POST']) def submit(): form = MyForm() if form.validate_on_submit(): return 'Data received securely' return 'CSRF token missing or invalid', 400
from flask import Flask, request app = Flask(__name__) @app.route('/submit', methods=['POST']) def submit(): # No CSRF token validation data = request.form['data'] return 'Data received'
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| No CSRF token | No extra DOM nodes | 0 | 0 | [X] Bad - insecure, no protection |
| CSRF token in hidden input | 1 hidden input node added | 0 | Minimal | [OK] Good - secure with minimal impact |
@app.route('/submit', methods=['POST'])
def submit():
return 'Success'{{ form.csrf_token }} in the form template includes the token correctly.{{ form.csrf_token }} in the HTML form correctly enables protection and includes the token in the form.Pass the test and this pattern moves unknown