Middle Безопасность Обязательно

CSRF и sessid

Защита от подделки межсайтовых запросов обеспечивается токеном сессии, который выводится в формы методом bitrix_sessid_post() и проверяется функцией check_bitrix_sessid(). В контроллерах D7 и действиях компонентов проверка токена активна по умолчанию через префильтр Csrf, а её снятие допустимо исключительно для внешних серверных вебхуков и API с собственной авторизацией.

Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.

Что нужно понимать

  • 1
    Sessid
  • 2
    Проверка токена
  • 3
    bitrix_sessid_post()

Материалы

Официальная документация

Проверь себя

Заказчик жалуется: пользователи оставляют вкладку на ночь, а утром форма на своём ajax.php не отправляется. Почему и что делать?

Сессия истекла, с ней сменился bitrix_sessid, и check_bitrix_sessid() режет запрос. Либо перевести обработчик на контроллер и BX.ajax.runAction, который берёт новый токен из ответа и повторяет запрос, либо обновлять токен на клиенте самому.

Почему нельзя защитить ссылку «удалить» через bitrix_sessid_get()?

Токен уходит в GET и попадает в историю, логи и Referer. Изменение состояния — только POST с bitrix_sessid_post(); GET с токеном допустим для выхода из системы, и то с редиректом после.

Зачем документация требует ставить bitrix_sessid_post() первой строкой формы?

Неэкранированное поле выше токена позволяет HTML-инъекцией открыть атрибут src и утащить токен в адрес картинки. Если токен стоит выше любого пользовательского значения, в инъекцию он не попадает.

Когда отключать фильтр Csrf в контроллере законно?

Когда запрос приходит не из браузера пользователя: колбэк платёжной системы, вебхук, обмен с 1С. Взамен нужна подпись или своя авторизация, а не пустое место.

Не сходится?

Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.

Знаете материал лучше?

Предложите ссылку: после проверки она появится в этом разделе.

Войти, чтобы предложить
Поделиться в Telegram
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти