Значение auto_increment MySQL InnoDB увеличивается на 2 вместо 1. Вирус?

Существует таблица InnoDB для хранения комментариев к сообщениям в блогах, используемых специально созданным веб-приложением.

Недавно я заметил, что автоматически увеличивающиеся значения первичного ключа для комментариев увеличиваются на 2 вместо 1.

Я также заметил, что в другой таблице MySQL, которая используется для запоминания подписи последних нескольких комментаторов (например, ip, идентификатор сеанса, строка uagent и т. Д.), Имя сеанса PHP начинается с viruskinq, что странно, потому что я думал, что это всегда должно быть шестнадцатеричная строка, подобная md5.

Google дает только несколько результатов для viruskinq, все на турецком языке. Это интересно, потому что примерно год назад рассматриваемый сайт был испорчен турецкими злодеями. (Я на 100% уверен, что злоумышленники не добились успеха из-за каких-либо дыр в безопасности в моем приложении, потому что другие веб-сайты, размещенные той же компанией, тоже были в то время повреждены.)

Сайт находится на общем хосте с использованием Linux.

Как вы думаете, возможно ли, что сам сервер все еще находится под влиянием этих хакеров? Изучение значений идентификатора комментария показало, что это явление удвоения существует с мая этого года, но деформация произошла почти год назад.

Какие еще могут быть причины, объясняющие странное поведение значения автоматического увеличения? Приложение не было изменено, и в старых комментариях автоматически увеличиваются значения первичного ключа.

Изменить: краткое изложение решения

Хостинговая компания сообщила мне, что причина удвоенного значения автоматического увеличения заключается в том, что они используют архитектуру MySQL Master-Slave, и, по их мнению, это явление является нормальным.

Они также признали, что различные хакеры постоянно атакуют их серверы, особенно сеансы, и они ничего не могут с этим поделать.

Думаю, мне лучше начать собирать вещи и перейти на лучший хостинг.


person Wabbitseason    schedule 28.08.2010    source источник
comment
все упоминания в Google кажутся никнеймами   -  person aib    schedule 28.08.2010
comment
Вы уверены, что в вашей базе данных нет пустых строк между ними?   -  person Your Common Sense    schedule 28.08.2010
comment
Таблица выглядит отлично, если не считать значений autoinc.   -  person Wabbitseason    schedule 28.08.2010
comment
Я считаю, что вам нужно отлаживать свое приложение, а не просить других угадывать.   -  person Your Common Sense    schedule 28.08.2010
comment
что SELECT @@auto_increment_increment; говорит вам? Также проверьте, не установлена ​​ли эта переменная где-то в вашем приложении во время выполнения.   -  person Imre L    schedule 28.08.2010
comment
Имре Л: Я получил 2, но мне кажется, что я не могу изменить это значение. Я собираюсь написать письмо в техподдержку хостинговой компании.   -  person Wabbitseason    schedule 28.08.2010


Ответы (2)


Я очень, очень сомневаюсь, что это вирус. Дважды проверьте, действительно ли это идентификатор сеанса, который начинается с этой строки (что действительно могло бы вызвать некоторые опасения). Я предполагаю, что это ребенок, который обнаружил, как изменять строку User Agent в браузере, и вы видите результаты этого, что совершенно безвредно.

Что касается проблемы инкремента.

  • Сначала проверьте настройку auto_increment_increment вашего сервера mySQL. Может, почему-то ставили на 2?

  • Во-вторых, если это не так, я бы посмотрел на все DELETE операции, которые система комментариев выполняет над таблицей. Удаляются ли комментарии, признанные спамом? Можете ли вы какое-то время регистрировать удаления или переключиться на мягкие удаления?

  • Кроме того, попробуйте создать несколько последующих комментариев самостоятельно. Происходит ли то же самое явление? Что делать, если вы добавляете записи с помощью mySQL вручную?

  • Просмотрите код PHP, вставив отправленный комментарий, и убедитесь, что нет ничего, что могло бы привести к такому поведению.

  • Попробуйте переместить систему комментариев на другой сервер - желательно на локальный, может быть, только что настроенный - и посмотрите, сохраняется ли там такое поведение.

person Pekka    schedule 28.08.2010
comment
Странный идентификатор сеанса был моим, и я использовал компьютер с Windows7. Я проверил это с Linux, и у меня получилось нормальное имя сеанса. Я снова переключился на Windows7 и снова получил нормальное имя сеанса. Мне не удалось снова встретить это имя viruskinq. Разве идентификатор сеанса PHP не генерируется только сервером? - person Wabbitseason; 28.08.2010
comment
К счастью, это малопрофильный сайт, на котором не так часто встречаются комментарии. Я сделал несколько тестовых комментариев, и значение автоматического увеличения каждый раз увеличивалось на 2. - person Wabbitseason; 28.08.2010
comment
@Wabbit, ты на 1000% уверен, что это идентификатор сеанса? Нет путаницы со строкой пользовательского агента? - person Pekka; 28.08.2010
comment
Да, я уверен. У меня есть таблица для целей защиты от наводнения, в которой хранятся значения идентификаторов сеансов комментаторов. Это не имеет ничего общего с UA, и, как я уже упоминал, я получил это странное значение, оно не было создано каким-то умным ребенком. Я вам говорю: это странно! : D - person Wabbitseason; 28.08.2010

Может ли быть так, что значение автоинкремента таблицы установлено на 2?

См .: Столбец автоинкремента MySQL увеличивается на 10 - почему?

person aib    schedule 28.08.2010
comment
Я получил значение X, но мой тестовый комментарий получил значение X + 1. - person Wabbitseason; 28.08.2010