Ми робимо це за допомогою функції командного рядка (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()
або 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-ім’я / ім'я хоста, але нічого більше.