Ошибки в логе

Версия 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… Подскажите, пожалуйста, как можно это отловить, определить из-за каких действий это происходит.
Любовь
27 июля 2014, 18:16
modx.pro
5 776
-1

Комментарии: 14

Василий Наумкин
28 июля 2014, 06:30
0
Настройки MODX и кодировка БД, видимо не совпадают.
Сам с таким не сталкивался, но в поисковиках можно найти массу информации, например вот.

Ну а SQL injection, скорее всего, никакой и нет, просто при запросе с неправильными кодировками срабатывает защита xPDO.
    Любовь
    28 июля 2014, 07:53
    0
    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. Можно просто сменить остальным таблицам кодировку? Есть разница на какую менять? Это на рабочем сайте можно делать или лучше закрыть доступ сначала?
      Василий Наумкин
      28 июля 2014, 07:55
      0
      В ошибке у тебя написано cp1251_general_ci, а не utf8.
        Любовь
        28 июля 2014, 08:34
        0
        cp1251 нигде нет… в настройках сайта тоже везде UTF8. Есть смысл кодировку каждого файла проверить?
          Василий Наумкин
          28 июля 2014, 08:43
          0
          Причем здесь файлы?

          Раз в логах ругань, значит где-то в процессе работы с БД есть cp1251, нужно искать. Возможно это дополнение какое-то так делает, или так установлено в /core/config/config.inc.php.
            Любовь
            28 июля 2014, 09:18
            0
            Ясно, спасибо, попробую найти. В конфиге тоже utf8.
              Любовь
              29 июля 2014, 18:22
              0
              Отловила некоторые ошибки. 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.

              Какие еще есть способы выяснить из-за чего ошибки в логе?
                Василий Наумкин
                29 июля 2014, 18:35
                0
                Ругань в логах на mSearch1, видимо остался его плагин или еще что-то.
                  Любовь
                  30 июля 2014, 09:25
                  0
                  Да, плагин остался, отключила — эти ошибки исчезли, спасибо!
                  А как быть с кавычками в запросе?

                  Есть какие-нибудь методы чтобы выяснить какой компонент выдает ошибку с кодировкой? Или только логи сайта, сервера смотреть и логи доступа?
                    Василий Наумкин
                    30 июля 2014, 11:00
                    1
                    0
                    Метод один — очистить кэш, очистить лог, затем открывать страницы по одной и смотреть в лог.

                    Как появятся ошибки — отключать по одному сниппеты на странице и проверять лог. Так должен найтись виновник и с ним уже разбирайся.
                      Любовь
                      30 июля 2014, 11:36
                      0
                      Так я пробовала — при своих действиях на сайте таких ошибок не возникает. Там больше 10000 в сутки проходит…
                      Попробую сделать копию сайта и потестировать так, может найдется.
                        Василий Наумкин
                        30 июля 2014, 12:32
                        1
                        0
                        Ну тогда нужно сравнить время из лога MODX и лог посещений сервера. То есть, нужно найти что открыл пользователь в ту же секунду, как появилась ошибка в MODX.

                        Ну а дальше по вышеописанной методике.
                        Любовь
                        30 июля 2014, 15:36
                        0
                        Пока ничего не нашлось, да и сайт пока пришлось закрыть.
                        А как быть с кавычками в запросе? Это у меня что-то неправильно настроено?
    Valentin
    25 ноября 2016, 16:19
    0
    Ребят MODX Revolution 2.5.1-pl
    ошибка в логах
    (ERROR @ /www/sitename/core/xpdo/om/xpdoquery.class.php : 739) Encountered empty IN condition with key id
    куда копать?
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      14