Jak rozpoznać rozszerzenia, które „dzwonią do domu”?


10

Czy istnieje sposób na identyfikację kodu, który wysyła żądania HTTP do zdalnego serwera w tle?

Zauważyłem, że kiedy mam nierówny odbiór na mojej maszynie programistycznej, wiele sklepów ładuje się długo, nawet na localhost.

Mam wrażenie, że niektóre zdalne serwery długo reagują z powodu mojego nieregularnego połączenia. Chciałbym zidentyfikować te żądania i je usunąć, ponieważ obawiam się, że mogą one również spowolnić instalacje na żywo, na przykład, jeśli serwer zewnętrzny jest wyłączony lub spowalnia ...


1
Uwaga / sprawdź, czy możesz usunąć te połączenia. Prawdopodobnie jesteś dozwolony, ale widziałem przypadki, w których jest to jeden z wymagań dotyczących rozszerzeń.
David Mulder

Odpowiedzi:


8

Robimy to za pomocą funkcji wiersza poleceń (Bash) na dowolnym serwerze sieciowym w stosie,

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"
}

Poza tym możesz korzystać z metod CURL / fopen w Magento (ale zakładając, że zadają sobie trud korzystania z podstawowych metod, aby to zrobić), częściej niestandardowe moduły używają ich metod otwartych file_get_contents()lub curlmetod.

Możesz zrobić szybkie sprawdzenie za pomocą prostego grep(zakładając, że kod nie jest zaciemniony)

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

I jak powiedział poniżej @Marius, poszukaj ukrytych modułów, które mogą ukryć swoje metody w base64zaszyfrowanych ciągach

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

Jedynym problemem związanym z powyższą metodą CLI jest to, że jest wyjątkowo skuteczna w przypadku wychodzących żądań HTTP, ale jest bezużyteczna dla HTTPS (biorąc pod uwagę, że ruch jest szyfrowany), ale najlepsze jest IP / nazwa hosta, ale nic więcej.


2
Możesz także poszukać evali zobaczyć, co dzieje się w tych evalfunkcjach. Większość rozszerzeń, z których korzysta telefon w domu, evaltylko dlatego, że nie można łatwo znaleźć ich numeru telefonu.
Marius

2
Aktualizowany w celu uwzględnienia regex dla eval„zbyt
Ben Lessani - Sonassi

1

Trudno odpowiedzieć - jeśli niektóre rozszerzenia stron trzecich wysyłają żądania do zdalnego serwera, może się to dziać na wiele sposobów, w zależności od sposobu zbudowania żądania. Najlepszą opcją znalezienia takich instancji (choć potencjalnie zbyt długich) jest zbadanie kodu rozszerzenia, niestety nie ma jednej ogólnej metody identyfikowania takich rzeczy.

Nie mając pojęcia, jakie rozszerzenia zainstalowałeś ani jak zostały zbudowane, dodam, że jeśli rozszerzenie zostało dobrze opracowane, każda taka komunikacja powinna być wykonana w taki sposób, aby nigdy nie wpłynęła na wydajność frontendu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.