2008-09-30 18 views
37

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

मुझे लगता है कि यह परीक्षण चलाने का सबसे आसान तरीका एक HTTP प्रॉक्सी स्थापित करना है जो प्रत्येक अनुरोध पर शीर्षलेख डालने वाला है। इसे स्थापित करने का सबसे आसान तरीका क्या होगा?

उत्तर

59

मैं पोर्ट 8080 पर अपने आवेदन सर्वर के लिए एक प्रॉक्सी के रूप में पोर्ट 80 पर अपाचे को विन्यस्त, निम्नलिखित अपाचे के साथ के आधार पर अपने विकास के वातावरण में कुछ इस तरह करते हैं config:

NameVirtualHost * 
<VirtualHost *> 
    <Proxy http://127.0.0.1:8080/*> 
     Allow from all 
    </Proxy> 
    <LocationMatch "/myapp"> 
     ProxyPass http://127.0.0.1:8080/myapp 
     ProxyPassReverse http://127.0.0.1:8080/myapp 
     Header add myheader "myvalue" 
     RequestHeader set myheader "myvalue" 
    </LocationMatch> 
</VirtualHost> 

देखें LocationMatch और RequestHeader प्रलेखन।

यह हेडर मायहेडर जोड़ता है: एप्लिकेशन सर्वर पर जाने के अनुरोध के लिए myvalue

+11

यह माईहेडर भी जोड़ देगा: प्रतिक्रिया शीर्षकों के लिए myvalue। अपाचे mod_headers पर पूरा दस्तावेज़: http://httpd.apache.org/docs/current/mod/mod_headers.html –

+1

@Fred: तो हम हेडर को केवल प्रॉक्सी अनुरोध में कैसे दिखने के लिए प्रतिबंधित करते हैं? –

+4

वैसे हैडर प्रतिक्रिया में जोड़ रहा है, और प्रॉक्सी के पीछे सर्वर अनुरोध के लिए RequestHeader। मैंने इससे क्या किया है यह सुनिश्चित करने के लिए कि सेटिंग्स.xml क्वेरी कभी अन्य प्रॉक्सी द्वारा कैश नहीं की जाती है, और मैंने किया: SetEnvIf Request_URI "\ settings.xml $" object_is_settings_xml हैडर सेट कैश-कंट्रोल "नो-कैश, नो-स्टोर" env = object_is_settings_xml हैडर सेट समाप्त हो गया है "गुरु, 01 जनवरी 1 9 00 00:00:00 जीएमटी" env = object_is_settings_xml हैडर सेट प्रगामा "नो-कैश" env = object_is_settings_xml –

3

मैं tinyproxy कोशिश करता हूं। वास्तव में, सर्वेक्षण सबसे अच्छा वहाँ एक पटकथा भाषा embedd होगा ... Lua के लिए एक आदर्श नौकरी की तरह लगता है, विशेष रूप से देखकर कितनी अच्छी तरह यह mysqlproxy

2

के लिए काम किया मैं सह कार्यकर्ता कि Burp का इस्तेमाल किया है पड़ा है के बाद (" इसके लिए वेब अनुप्रयोगों पर हमला करने और परीक्षण करने के लिए एक इंटरैक्टिव HTTP/एस प्रॉक्सी सर्वर ")। आप Fiddler ("एक HTTP डीबगिंग प्रॉक्सी") का उपयोग करने में भी सक्षम हो सकते हैं।

14

आप फिडलर (http://www.fiddler2.com/fiddler2/) भी इंस्टॉल कर सकते हैं जो इंस्टॉल करना बहुत आसान है (उदाहरण के लिए अपाचे से आसान)।

इसे लॉन्च करने के बाद, यह सिस्टम प्रॉक्सी के रूप में स्वयं पंजीकृत होगा। फिर "नियम" मेनू खोलें, और एक जेस्क्रिप्ट फ़ाइल खोलने के लिए "नियमों को कस्टमाइज़ करें ..." चुनें जो आपको अनुरोधों को कस्टमाइज़ करने की अनुमति देता है।

एक कस्टम हेडर जोड़ने के लिए, OnBeforeRequest समारोह में एक पंक्ति जोड़ें: नकली को

oSession.oRequest.headers.Add("MyHeader", "MyValue"); 
0

के बजाय एक प्रॉक्सी का उपयोग, मैं हेडर (मेरे मामले में डालने के लिए फ़ायरफ़ॉक्स प्लगइन "Modify Headers" उपयोग कर रहा हूँ, सिंगल साइन ऑन का उपयोग करके एक लॉगिन ताकि मैं अलग-अलग लोगों के रूप में परीक्षण कर सकूं)।

+1

अफैक सवाल फ़ायरफ़ॉक्स-विशिष्ट नहीं था। – peterh

+0

@ पीटर नहीं, यह नहीं था, लेकिन यदि आप ब्राउज़र के उपयोग के बारे में लचीला हैं, तो फ़ायरफ़ॉक्स में प्लगइन जोड़ना अपाचे उदाहरण स्थापित करने से बहुत आसान है। –

0

यदि आपके सिस्टम पर रूबी है, तो सिनात्रा का उपयोग करके एक छोटी रूबी प्रॉक्सी के बारे में (सिनात्रा जेम स्थापित करना सुनिश्चित करें)। अपाचे सेट अप करने से यह आसान होना चाहिए। कोड here.