Как определить расширения, которые «звонят домой»?


10

Есть ли способ идентифицировать код, который отправляет HTTP-запросы на удаленный сервер в фоновом режиме?

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

У меня такое ощущение, что некоторые удаленные серверы долго реагируют из-за моего нестабильного соединения. Я хотел бы идентифицировать эти запросы и удалить их, потому что боюсь, что они также могут замедлить установку в реальном времени, например, если внешний сервер не работает или работает медленно ...


1
Обратите внимание / проверьте, разрешено ли вам удалить эти звонки. Возможно, вам разрешено, но я видел случаи, когда это было одним из требований расширения.
Дэвид Малдер

Ответы:


8

Мы делаем это с помощью функции командной строки (Bash) на любом соответствующем веб-сервере в стеке,

monitor_outbound ()
{
  tcpflow -p -c -i bond0 '( port 80 or port 443 ) and ' $(ip addr list | grep -Eoh "([0-9]{1,3}\.){3}[0-9]+" | sort -u | awk '{print "src host " $1 " or"}' | tr '\n' ' ' | sed -E 's# or $##g') | grep --line-buffered -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*' | sed --unbuffered "s/^/$(date "+%b %d %T"): /g"
}

Если не считать этого, вы можете использовать методы CURL / fopen в Magento (но это предполагает, что они пытаются использовать основные методы для этого), чаще всего вы обнаружите, что пользовательские модули используют свои методы open file_get_contents()или open curl.

Вы можете сделать быструю проверку с помощью простого grep(при условии, что код не запутан)

grep -ilrE "curl|file_get_contents|fopen|Zend_Http_Client" app/code/local app/code/community

И, как сказал @Marius ниже, обратите внимание на скрытые модули, которые могут скрывать свои методы в base64зашифрованных строках.

grep -ilrE "eval[\t ]+\(" app/code/local app/code/community

Единственная проблема с методом CLI, описанным выше, заключается в том, что, хотя он чрезвычайно эффективен для исходящих HTTP-запросов и бесполезен для HTTPS (учитывая, что трафик зашифрован), лучшее, что вы получите, - это IP / имя хоста, но ничего более.


2
Вы также можете посмотреть evalи посмотреть, что происходит в этих evalфункциях. Большинство добавочных номеров, которыми пользуется домашний телефон, используются для evalтого, чтобы вам было нелегко найти их номер.
Мариус

2
Обновлен, чтобы включить регулярное выражение для evalтоже
Бен Лессани - Сонасси

1

Трудно ответить - если некоторые сторонние расширения отправляют запросы на удаленный сервер, это может происходить множеством способов в зависимости от того, как был создан запрос. Наилучшим вариантом для поиска таких экземпляров (хотя они потенциально затянуты) является на самом деле изучение кода расширения, к сожалению, не существует единого общего метода для идентификации таких вещей.

Не имея представления о том, какие расширения вы установили или как они были построены, я добавлю, что если расширение было разработано правильно, любое такое взаимодействие должно было бы осуществляться таким образом, чтобы оно никогда не влияло на производительность внешнего интерфейса.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.