Поиск и устранение причины странных запросов

AndrewP

Новичок
Здравствуйте.

Необходимо найти причину проблемы и устранить ее.
В логе Apache начали появляться странные записи.
Выглядит это так: c ip поступает нормальный запрос.
В следующую секунду-две от этого же ip идут 10-20 запросов, где в конец добавлены коды.
Как выяснилось большинство из этих кодов - функции из mootools.js !
Некоторые из последующих заходов на другие страницы влекут опять поток таких же запросов.
Вот пример одного из запросов:
"GET /function%20Array()%20%7B%20[native%20code]%20%7D"

Количество ip с такими странными действиями - примерно пару десятков из пару тысяч нормальных посетители.
Из них некоторые - 100% обычные люди, которые оформляют заказы с реальными номерами телефона, переходят с вполне нормального поиска.

Остальные посетители - ок.
Длится это как минимум дней 10. Более ранние логи не сохранились.

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

Логи Апача за разные периоды с описанными проблемами и адрес сайта вышлю по запросу в личку.


Как понимаю я, варианты:
1. ошибка javascript в браузере
2. ошибка сервера
3. где-то внедрен хакерский код, который вызывает такие действия.

Стоимость и сроки спрогнозировать сложно для такой задачи. Но чем раньше, тем лучше.
По деньгам - рассматриваю адекватные предложения. Зависит от того, в чем окажется проблема. Стоимость может быть от нескольких десятков, до нескольких сотен дол. США.
 

fixxxer

К.О.
Партнер клуба
Ищешь место, где у тебя написано что-то вроде

PHP:
function query(path ...) {
    url = '/' + path;
    ajax(url, ...)
}
вставляешь проверку на typeof path == 'function', получаешь стектрейс (хотя бы через try - throw - catch) и логируешь его отправкой на сервер
 

AndrewP

Новичок
вставляешь проверку на typeof path == 'function', получаешь стектрейс (хотя бы через try - throw - catch) и логируешь его отправкой на сервер
Есть такие функции, например:
Код:
function update_div(chto,kuda){
  
    var req = new Request.HTML({
    asynchronous: true,
    noCache: true,
    method: 'get',
    url: chto,
    update: kuda});

    req.send();

}
Но, честно говоря, я не совсем понимаю по поводу "typeof path == 'function'", не могли бы вы объяснить подробнее?
 

fixxxer

К.О.
Партнер клуба
в данном случае проверять typeof chto == 'function'

очевидно, что такое
GET /function%20Array()%20%7B%20[native%20code]%20%7D

получается в результате конкатенации "/" и функции, в данном случае array constructor:

PHP:
$ node -p ' "/"+Array; '
/function Array() { [native code] }
если не поможет, проверять на подстроку /function, смотреть бэктрейс и подниматься по нему обеими проверками - на подстроку и на typeof, пока не найдется это место

есть догадка, что где то такая ошибка:

var что_то = Array

вместо Array() или []
 

fixxxer

К.О.
Партнер клуба
вообще вот так поле поиска сузится до минимального

grep -Ri 'array[^\(]*[;,]' .

ну еще выбросить array\.proto возможно, если будет много ;)
 
Сверху