हम इसे स्टैक में किसी भी संबंधित वेब सर्वर पर कमांड लाइन (बैश) फ़ंक्शन के साथ करते हैं,
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"
}
इसमें से कुछ, आप Magento में CURL / fopen विधियों का लाभ उठा सकते हैं (लेकिन यह मान लें कि वे इसे करने के लिए मुख्य विधियों का उपयोग करने की जहमत उठाते हैं), अधिक बार नहीं, आप पाएंगे कि कस्टम मॉड्यूल उनके खुले file_get_contents()
या curl
विधियों का उपयोग करते हैं ।
आप एक साधारण के साथ एक त्वरित जांच कर सकते हैं grep
(यह मानते हुए कि कोड को बाधित नहीं किया गया है)
grep -ilrE "curl|file_get_contents|fopen|Zend_Http_Client" app/code/local app/code/community
और जैसा कि @ मारी ने नीचे कहा है, अस्पष्ट मॉड्यूल के लिए एक नज़र है, जो base64
एन्क्रिप्टेड स्ट्रिंग्स में अपने तरीकों को छिपा सकता है
grep -ilrE "eval[\t ]+\(" app/code/local app/code/community
उपरोक्त CLI पद्धति के साथ एकमात्र समस्या, आउटबाउंड HTTP अनुरोधों के लिए बेहद प्रभावी है, HTTPS (ट्रैफ़िक एन्क्रिप्ट किया गया है) के लिए बेकार है, आपको जो सबसे अच्छा मिलेगा वह एक आईपी / होस्टनाम है, लेकिन आगे कुछ भी नहीं।