Журнал событий переполнен предупреждением

Trying to get property of non-object
« MODX Parse Error »
Error: Unknown: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,'
И даже знаю из-за чего: сканируют на уязвимость.
Информация из инета:
It is an information vulnerability, a malicious attacker may alter the cookies and assigns illegal characters to PHPSESSID to expose this PHP warning, which in fact contains juicy information like the file path and the username !
Как пофиксить это на уровне MODX ?
Видимого урона работе сайта это не наносит, но несколько сотен писем с предупреждениями с сайта за час напрягают.

5 комментариев

avatar
Включить уведомления только для error.
avatar

включены изначально — не помогает
В .ini:
php_value[error_reporting] = E_ALL & ~E_DEPRECATED & ~E_STRICT
php_flag[display_errors] = off
avatar
1. Блокировать сканировала по ip. Если их много то п.2
2. Посмотреть, что именно шлют в сессию и написать плагин, который бы проверял данное поле и ансетил его.
3. Если по хардкора, то найти в коде MODx, на какой строке выползает ошибка и поставить в начало @.
  • EGO
  • +1
avatar
Вариантов как пофиксить в коде много:
https://stackoverflow.com/questions/3185779/the-session-id-is-too-long-or-contains-illegal-characters-valid-characters-are
Но не хотелось бы ломать код MODx (если только разработчики не внесут соответствующий фикс)
Реализовать на уровне плагина — без понятия. На какое событие вешать? Управление сессией — это же на уровне ядра modx имхо.
Блокировать IP — сегодня один ip, завтра другой. Не выход.
avatar
Я бы на самое первое событие повесил OnInitCulture и проверял бы на голом php что там в сессии.
PS: походу доку по REVO глянул, сейчас с компа посмотрю.
Похоже OnWebPagePrerender подойдёт)
Комментарий отредактирован 2017-07-03 14:32:15 пользователем EGO
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.