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 curl
metod.
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 base64
zaszyfrowanych 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.