Форум Deep-CMS

Друзья, со времени последнего обновления на форуме прошло уже достаточно времени. А в Deep-CMS было сделано множество изменений и улучшений. Начиная с этого дня (16.10.2014) я буду уделять больше времени проекту. Обязуюсь появляться тут ежедневно!

Вы не вошли.

#1 2014-10-11 17:12:26

arnold
Пользователь

Недопустимый реферер, возможная попытка CSRF-атаки

Возникла такая проблема!

В конфиге есть опция debug_mode, поставил как true.

Результат:
"Ошибка

0: Недопустимый реферер, возможная попытка CSRF-атаки

Throw in /home/clients/dzhin_ftp0/domains/тут_адрес_сайта/html/application/core/request.php on line 683"

Offline

#2 2014-11-07 15:34:25

Deep
Пользователь

Re: Недопустимый реферер, возможная попытка CSRF-атаки

Прошу прощения за столь долгий ответ!


Поведение системы корректно.
Предполагаю что сайт был перенесен на другой домен.
Например разрабатывали на локалхосте и выложили на хостинг.

Что такое CSRF?

https://ru.wikipedia.org/wiki/%D0%9C%D0 … 1%81%D0%B0
http://habrahabr.ru/post/21626/

Как работает защита от CSRF в Deep-CMS?

Система всегда привязывается к домену, автоматически привязывается во время установки.
Именно привязка к домену дает возможность проверить реферер.
Проверяется не только реферер, но и страница с которой был отправлен запрос.
Например, удалить пользователя в админке можно только находясь на странице со списком пользовыателей: /admin/users
Такая защита работает почти для всех действий в админке.

Вообще, если рассматривать "классический" способ защиты от CSRF, то обычно используют CSRF-токены в формах и ссылках а потом проверяют их.
Но в таком случае на плечи разработчика (в контексте Deep-CMS) ложится дополнительная ответственность: не забыть добавить в форму еще одно поле, не забыть проверить значение токена где-то в логике.. и все такое.

Я решил избавиться от этого и ввел привязку к домену.

Как изменить привязку к домену?

В директории application/config/* должен лежать файл основной конфигурации системы - main.json именно в нем указывается привязка к домену.
Необходимо просто указать корректный текущий домен (где-то в начале файла, там все откомментировано, легко найти).

Замечание:

Если в той же директории находится файл main.json.generated то его нужно удалить.
Что это за файл?

Изначально система использует основной файл main.json, но когда кто-то находясь в административном разделе что-то изменяет в глобальных настройках - система не изменяет содержимое файла main.json, а генерирует новый файл с изменениями main.json.generated, который в последствии и использует. А в основном файле хранятся значения и настройки которые внес разработчик при настройке системы. Из админки его изменить не возможно. Файл main.json.generated кстати удаляется и через админку, в глобальных настройках есть пункт "Сбросить настройки" который собственно и удаляет этот файл. Но при ситуации когда срабатывает защита из-за некорректного домена - придется править руками main.json и удалять main.json.generated по FTP - в админку то не попасть ))

Offline

Подвал раздела

Форум работает на движке FluxBB