एक्सटेंशन की पहचान कैसे करें "फोन घर"?


10

क्या कोड की पहचान करने का एक तरीका है जो पृष्ठभूमि में एक दूरस्थ सर्वर से HTTP अनुरोध भेजता है?

मैंने देखा कि जब मेरी विकास मशीन पर धब्बेदार स्वागत होता है, तो कई दुकानों को लोड करने में लंबा समय लगता है, यहां तक ​​कि लोकलहोस्ट पर भी।

मुझे लगता है कि कुछ दूरस्थ सर्वरों को मेरे धब्बेदार कनेक्शन के कारण प्रतिक्रिया करने में लंबा समय लगता है। मैं इन अनुरोधों की पहचान करना और उन्हें दूर करना चाहूंगा, क्योंकि मुझे डर है कि वे लाइव इंस्टॉलेशन को धीमा कर सकते हैं, उदाहरण के लिए यदि बाहरी सर्वर डाउन या धीमा है ...


1
कृपया ध्यान दें / जांचें कि क्या आपको इन कॉल्स को हटाने की अनुमति है। आपको संभवतः अनुमति दी गई है, लेकिन मैंने ऐसे उदाहरण देखे हैं जहां यह एक्सटेंशन आवश्यकताओं में से एक है।
डेविड मुल्डर

जवाबों:


8

हम इसे स्टैक में किसी भी संबंधित वेब सर्वर पर कमांड लाइन (बैश) फ़ंक्शन के साथ करते हैं,

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 (ट्रैफ़िक एन्क्रिप्ट किया गया है) के लिए बेकार है, आपको जो सबसे अच्छा मिलेगा वह एक आईपी / होस्टनाम है, लेकिन आगे कुछ भी नहीं।


2
आप evalउन evalकार्यों को देखना और देखना चाहते हैं जो हो सकते हैं । फ़ोन होम का उपयोग करने वाले अधिकांश एक्सटेंशन evalआपको आसानी से उनके फ़ोन नंबर नहीं मिलते हैं।
मारियस

2
नवीनीकृत करने के लिए eval
रीगेक्स को

1

जवाब देने के लिए कठिन एक - यदि कुछ तृतीय पक्ष एक्सटेंशन दूरस्थ सर्वर को अनुरोध भेज रहे हैं, तो यह अनुरोधों के आधार पर कई तरीकों से हो सकता है कि अनुरोध कैसे बनाया गया है। इस तरह के उदाहरणों को खोजने के लिए आपका सबसे अच्छा विकल्प (हालांकि संभावित रूप से लंबे समय तक घुमावदार) वास्तव में विस्तार कोड का अध्ययन करना है, इस तरह से चीजों की पहचान करने के लिए दुर्भाग्य से कोई एक कंबल विधि नहीं है।

यह पता नहीं होने से कि आपने कौन से एक्सटेंशन स्थापित किए हैं या उन्हें कैसे बनाया गया है, मैं यह जोड़ूंगा कि यदि एक्सटेंशन को अच्छी तरह से विकसित किया गया है, तो इस तरह के किसी भी संचार को कुछ इस तरह से किया जाना चाहिए कि यह कभी भी फ्रंटएंड प्रदर्शन को प्रभावित नहीं करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.