Flask SeaSurf


1. Basic Usage

from flask import Flask, request
from flask_seasurf import SeaSurf

app = Flask(__name__)
csrf = SeaSurf(app)

@csrf.exempt
@app.route('/', methods=["GET", "POST"])
def index():
    if request.method == "POST":
        csrf.validate()
    return 'OK'

2. Custom CSRF Token Name

from flask import Flask, request
from flask_seasurf import SeaSurf

app = Flask(__name__)
csrf = SeaSurf(app, csrf_name='my_csrf_token')

@csrf.exempt
@app.route('/', methods=["GET", "POST"])
def index():
    if request.method == "POST":
        csrf.validate()
    return 'OK'

3. Custom CSRF Token Cookie Name

4. Custom CSRF Token Expiration Time

5. Custom CSRF Token Size

6. Custom CSRF Salt

7. Custom CSRF Token Generator

8. Custom CSRF Token Validator

9. Custom CSRF Token Header Name

10. Disabled CSRF Protection for Specific Routes

11. Disabled CSRF Protection for Specific HTTP Methods

12. Disabled CSRF Protection for Specific Endpoints

13. Disabled CSRF Protection for Entire Blueprint

14. Extract CSRF Token

15. Generate Unique CSRF Token

16. Check CSRF Token Validity

17. Disable CSRF Protection

18. Dynamically Generate CSRF Token

19. Use CSRF Token in Header

20. Use CSRF Token in Form

21. Use CSRF Token in Cookie

22. Disable CSRF Protection for Specific Domains

23. Disable CSRF Protection for Specific Methods

24. Ignore CSRF Protection for Static Files

25. Use Custom CSRF Protection Scheme

26. Use Flask-Login with CSRF Protection

27. Use with Flask-RESTful

28. Use with Flask-SocketIO

29. Use with Flask-WTF

30. Custom Error Handling

31. Use with Flask-Caching

32. Use with Flask-Babel

33. Customize CSRF Token Name and Header

34. Disable CSRF Token for Specific Blueprint

35. Generate CSRF Token for AJAX Requests

36. Customized CSRF Token Generation