2009-06-12 13 views
8

EDIT - नीचे पोस्ट किया गया समाधान शायद किसी भी सर्वर (Nginx/Apache/कुछ और) पर लागू होता है, क्योंकि यह हेडर रेल में ही सेट होता है।Nginx/यात्री से "एक्स-रनटाइम" हेडर को कैसे हटाएं?


किसी को भी पता है, जहां "एक्स-रनटाइम" शीर्षक में Nginx & यात्री हटाया जा सकता है?

मैंने स्रोत फ़ाइलों को दबा दिया है और अभी तक कुछ भी नहीं मिला है, लेकिन मैं सुरक्षा के लिए इसे छुटकारा दिलाना चाहता हूं क्योंकि यह रेल के बारे में बताता है।

+0

मुझे पूरा यकीन है कि एक्स-रनटाइम nginx द्वारा सेट नहीं है। मेरा सुझाव है कि आप यात्री स्रोतों की जांच करें। –

+0

मैंने प्रश्न पूछने से पहले दोनों स्रोतों को दोहराया लेकिन किसी भी चीज़ में कुछ भी नहीं देखा। – fig

उत्तर

7

यह निकला कि यह या तो निगेंक्स या पैसेंजर में सेट नहीं किया जा रहा था।

यह /gems/actionpack-2.3.2/lib/action_controller/ में benchmarking.rb में है, लाइन 90.

1

निम्नलिखित अपाचे के लिए है। मैंने सवाल सही ढंग से नहीं पढ़ा। :)

, हेडर मॉड्यूल, mod_headers सक्षम करें और अपाचे के विन्यास

Header always unset "X-Runtime" 

के लिए निम्न जोड़ते हैं तो आपको शायद यह भी तो भी निम्नलिखित जोड़ें X-Powered-By हैडर निकालना चाहते हैं जाएगा।

Header always unset "X-Powered-By" 
+0

यह वास्तव में अपाचे के बजाय Nginx है - धन्यवाद हालांकि – fig

+0

आह, अरे! :) मेरी गलती। – toholio

3

अपाचे में आप mod_headers उपयोग कर सकते हैं प्रतिक्रिया से किसी भी शीर्ष लेख (या उस के लिए अनुरोध को हटाने के लिए मामला)।

हेडर आप मॉड्यूल सक्षम करने की आवश्यकता निकालने के लिए:

# a2enmod headers 

तो फिर तुम हैडर निर्देश के लिए सेट किए बिना विकल्प का उपयोग कर सकते हैं उन्हें अनसेट करने के लिए:

Header unset X-Runtime 
Header unset X-Powered-By 

यह निर्देश दोनों इस्तेमाल किया जा सकता वैश्विक स्तर पर और एकल वर्चुअल-सर्वर

5

मुझे पता है कि यह एक पुराना सवाल है, लेकिन समस्या अभी भी मौजूद है और कई साइटें अभी भी इसके यात्री और nginx का पर्दाफाश करती हैं संस्करण मैं जवाब देता हूं जो मेरे लिए बहुत अच्छा काम करता है। एक्स-रनटाइम हेडर पर एक ही समाधान लागू होता है।

बस तृतीय पक्ष ngx_headers_more इंस्टॉल करें: http://github.com/agentzh/headers-more-nginx-module (आपको इसे स्रोत से पुनर्निर्माण करना होगा)। अपनी कॉन्फ़िगरेशन में जोड़ें (मैंने इसके लिए /etc/nginx/conf.d/security.conf बनाया है): server_tokens बंद; more_clear_headers 'सर्वर' 'एक्स-पावर्ड-बाय' एक्स-रनटाइम ';

config.middleware.delete(Rack::Runtime) 

सभी अन्य तरीकों लगते हैं:

3

किसी को जो अभी भी इस पर ठोकर है के लिए, मैं सबसे आसान और सबसे सही तरीका यह, config/application.rb में है जोड़कर ऐसा करने के लिए निम्नलिखित का मानना ​​है आउटपुट से फिल्टर के रूप में हेडर को इतना अक्षम नहीं करता है। यह रेल 4 के लिए है, यह सुनिश्चित नहीं है कि यह अन्य संस्करणों पर लागू होता है या नहीं।

अद्यतन:

एक प्रारंभकर्ता फ़ाइल में निम्न कोड और अधिक मजबूत किया जा सकता है के रूप में रैक :: रनटाइम मिडलवेयर के अस्तित्व कुछ अन्य घटकों द्वारा ग्रहण किया जा सकता है।

Rails.application.config.middleware.delete(Rack::Runtime) 
+0

इसने मुझे यह त्रुटि दी: '' /Users/ryan/.rvm/gems/[email protected]/gems/actionpack-4.1.5/lib/action_dispatch/middleware/stack.rb:125 से बाहर निकलना: 'assert_index' में: इस तरह के कोई भी मिडलवेयर पहले डालने के लिए: "रैक :: रनटाइम" (रनटाइम त्रुटि) '' 'रेल में 4.1.5 – ethicalhack3r

+0

शायद कुछ कोड रैक :: रनटाइम से पहले कुछ डालने का प्रयास कर रहा है और मानता है कि यह है मिडलवेयर की सूची। आप इसके बजाय प्रारंभकर्ता फ़ाइल में इसे आज़मा सकते हैं, जो समस्या को कम करना चाहिए: 'Rails.application.config.middleware.delete (रैक :: रनटाइम)' – petercai

+0

यह काम करता है, धन्यवाद! :) – ethicalhack3r

संबंधित मुद्दे