Nous le faisons avec une fonction de ligne de commande (Bash) sur n'importe quel serveur Web respectif de la pile,
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"
}
En dehors de cela, vous pouvez tirer parti des méthodes CURL / fopen dans Magento (mais cela suppose qu'ils prennent la peine d'utiliser des méthodes de base pour le faire), le plus souvent, vous trouverez des modules personnalisés utilisant leurs méthodes open file_get_contents()
ou curl
.
Vous pouvez faire une vérification rapide avec un simple grep
(en supposant que le code n'est pas obscurci)
grep -ilrE "curl|file_get_contents|fopen|Zend_Http_Client" app/code/local app/code/community
Et comme @Marius l'a dit ci-dessous, recherchez les modules obscufqués, qui pourraient masquer leurs méthodes dans base64
des chaînes cryptées
grep -ilrE "eval[\t ]+\(" app/code/local app/code/community
Le seul problème avec la méthode CLI ci-dessus est extrêmement efficace pour les requêtes HTTP sortantes, inutile pour HTTPS (étant donné que le trafic est crypté), le mieux que vous obtiendrez est une adresse IP / nom d'hôte, mais rien de plus.