Ошибки в логе
Версия MODX Revolution 2.2.14-pl (advanced).
Меня смущают вот такие строчки в логе:
Меня смущают вот такие строчки в логе:
[2014-07-27 21:41:25] (ERROR in xPDO::getValue @ /var/www/devz/www/core/xpdo/xpdo.class.php : 1096) Error HY000 executing statement:
Array
(
[0] => HY000
[1] => 1267
[2] => Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
)
[2014-07-27 21:42:12] (ERROR @ /index.php) SQL injection attempt detected: "Марш миллиона"[2014-07-27 20:39:43] (ERROR @ /index.php) Encountered empty IN condition with key id
Особенно SQL injection… Подскажите, пожалуйста, как можно это отловить, определить из-за каких действий это происходит. Комментарии: 14
Настройки MODX и кодировка БД, видимо не совпадают.
Сам с таким не сталкивался, но в поисковиках можно найти массу информации, например вот.
Ну а SQL injection, скорее всего, никакой и нет, просто при запросе с неправильными кодировками срабатывает защита xPDO.
Сам с таким не сталкивался, но в поисковиках можно найти массу информации, например вот.
Ну а SQL injection, скорее всего, никакой и нет, просто при запросе с неправильными кодировками срабатывает защита xPDO.
modx_bannery_ads
modx_bannery_ads_positions
modx_bannery_clicks
modx_bannery_positions
modx_gallery_album_contexts
modx_gallery_album_items
modx_gallery_albums
modx_gallery_items
modx_gallery_tags
modx_migx_formtab_fields
modx_migx_formtabs
modx_mse2_aliases
modx_mse2_intro
modx_mse2_queries
modx_mse2_words
modx_mse_modResIndex
modx_sendex_newsletters
modx_sendex_queue
modx_sendex_subscribers
modx_thumb_images
modx_tickets_files
modx_tickets_mail_queues
modx_tickets_stars
modx_tickets_votes
у этих таблиц кодировка utf8_unicode_ci, у остальных — tf8_general_ci, у базы utf8_unicode_ci. Можно просто сменить остальным таблицам кодировку? Есть разница на какую менять? Это на рабочем сайте можно делать или лучше закрыть доступ сначала?
В ошибке у тебя написано cp1251_general_ci, а не utf8.
cp1251 нигде нет… в настройках сайта тоже везде UTF8. Есть смысл кодировку каждого файла проверить?
Причем здесь файлы?
Раз в логах ругань, значит где-то в процессе работы с БД есть cp1251, нужно искать. Возможно это дополнение какое-то так делает, или так установлено в /core/config/config.inc.php.
Раз в логах ругань, значит где-то в процессе работы с БД есть cp1251, нужно искать. Возможно это дополнение какое-то так делает, или так установлено в /core/config/config.inc.php.
Ясно, спасибо, попробую найти. В конфиге тоже utf8.
Отловила некоторые ошибки. SQL injection возникает при запросе в строке поиска слов в с кавычками (используется mSearch2).
А при редактировании ресурсов вот такие:
Эта ошибка с действиями в админке получается не связана:
Какие еще есть способы выяснить из-за чего ошибки в логе?
А при редактировании ресурсов вот такие:
[2014-07-29 18:11:17] (ERROR @ /connectors/resource/index.php) Could not load class: mSearch from msearch.
[2014-07-29 18:11:17] (ERROR @ /connectors/resource/index.php) Problem getting service msearch, instance of class mSearch, from path /var/www/devz/www/core/components/msearch/model/msearch/
mSearch на сайте нет, папки такой тоже нет… почему она может возникать?Эта ошибка с действиями в админке получается не связана:
(ERROR in xPDO::getValue @ /var/www/devz/www/core/xpdo/xpdo.class.php : 1096) Error HY000 executing statement:
Array
(
[0] => HY000
[1] => 1267
[2] => Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
)
Может это быть из-за комментариев пользователей или из-за каких-то их действий? Как можно отловить? Комменты сама писала, ошибок нет — используется Tickets.Какие еще есть способы выяснить из-за чего ошибки в логе?
Ругань в логах на mSearch1, видимо остался его плагин или еще что-то.
Да, плагин остался, отключила — эти ошибки исчезли, спасибо!
А как быть с кавычками в запросе?
Есть какие-нибудь методы чтобы выяснить какой компонент выдает ошибку с кодировкой? Или только логи сайта, сервера смотреть и логи доступа?
А как быть с кавычками в запросе?
Есть какие-нибудь методы чтобы выяснить какой компонент выдает ошибку с кодировкой? Или только логи сайта, сервера смотреть и логи доступа?
Метод один — очистить кэш, очистить лог, затем открывать страницы по одной и смотреть в лог.
Как появятся ошибки — отключать по одному сниппеты на странице и проверять лог. Так должен найтись виновник и с ним уже разбирайся.
Как появятся ошибки — отключать по одному сниппеты на странице и проверять лог. Так должен найтись виновник и с ним уже разбирайся.
Так я пробовала — при своих действиях на сайте таких ошибок не возникает. Там больше 10000 в сутки проходит…
Попробую сделать копию сайта и потестировать так, может найдется.
Попробую сделать копию сайта и потестировать так, может найдется.
Ну тогда нужно сравнить время из лога MODX и лог посещений сервера. То есть, нужно найти что открыл пользователь в ту же секунду, как появилась ошибка в MODX.
Ну а дальше по вышеописанной методике.
Ну а дальше по вышеописанной методике.
Пока ничего не нашлось, да и сайт пока пришлось закрыть.
А как быть с кавычками в запросе? Это у меня что-то неправильно настроено?
А как быть с кавычками в запросе? Это у меня что-то неправильно настроено?
Ребят MODX Revolution 2.5.1-pl
ошибка в логах
ошибка в логах
(ERROR @ /www/sitename/core/xpdo/om/xpdoquery.class.php : 739) Encountered empty IN condition with key id
куда копать?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.