CSRF Token: что это?

CSRF (Cross-Site Request Forgery) token - это защитный механизм, который используется для предотвращения атак CSRF. Атака CSRF возникает, когда злоумышленник пытается выполнить неавторизованные действия от имени пользователя, профинансированного на целевом веб-сайте.

CSRF токен является уникальным случайным значением, которое генерируется и связывается с каждым пользовательским запросом на сервер. Этот токен включается в каждый запрос, отправляемый на сервер, и проверяется для проверки подлинности запроса.

Пример кода на серверной стороне:

python
from flask import Flask, render_template, request, session
import secrets
app = Flask(__name__)
app.secret_key = 'your_secret_key'
@app.route('/')
def index():
    # Генерация CSRF токена
    csrf_token = secrets.token_hex(16)
    session['csrf_token'] = csrf_token
    
    return render_template('index.html', csrf_token=csrf_token)
@app.route('/submit', methods=['POST'])
def submit():
    # Получаем CSRF токен из сессии
    saved_csrf_token = session.pop('csrf_token', None)
    
    # Проверяем CSRF токен из формы с сохраненным
    if saved_csrf_token != request.form.get('csrf_token'):
        return 'Invalid CSRF token!'
    
    # Действия, выполняемые при отправке формы
    return 'Form submitted successfully!'
if __name__ == '__main__':
    app.run()

Пример кода на клиентской стороне:

html

В приведенном примере при загрузке страницы создается CSRF токен и сохраняется в сессии пользователя. Затем токен вставляется в скрытое поле формы на клиентской стороне. Когда форма отправляется на сервер, контроллер проверяет, соответствует ли токен, отправленный с формой, токену, сохраненному в сессии. Если токены совпадают, форма считается действительной, и сервер может выполнить требуемые действия. Если токены не совпадают, сервер обрабатывает это как попытку атаки CSRF и может прервать выполнение запроса.

Таким образом, использование CSRF токенов является эффективным механизмом защиты от атак CSRF и помогает обеспечить безопасность веб-приложения.

Похожие вопросы на: "csrf token что это "

Как использовать getElementById в JavaScript
The Art of Choosing the Right Background Color for Your Website
Microsoft Visual C++ Runtime Library Ошибка - Как исправить?
Регулярные выражения в PHP: как использовать для работы с текстом
SOAP vs REST: Which Is the Best API for Your Project?
Drag and Drop: инструмент для быстрого и удобного перетаскивания файлов
<h1>Java Abstract Class - Определение абстрактного класса в Java
WebGL Aquarium
Как в CSS уменьшить картинку: лучшие способы и советы
Putchar - функция для вывода символа на экран