आवश्यकता का सुरक्षा जोखिम_ऑन 'ऐप / Mage.php'; Magento रूट में


12

मेरे पास मेरे Magento रूट में एक फ़ाइल है जो require_once 'app/Mage.php';मुझे Mage::getStoreConfigसिस्टम चर तक पहुंच प्रदान करने के लिए है।

क्या यह सुरक्षा जोखिम का कारण बनता है? क्या मुझे इसे दूसरे फ़ोल्डर में रखना चाहिए?

यह मेरी फाइल है, /twitter.php :

<?php
require_once 'app/Mage.php';
Mage::app();
$consumer_key = Mage::getStoreConfig("Social/twitterapi/consumer_key");
$consumer_secret = Mage::getStoreConfig("Social/twitterapi/consumer_secret");
$oauth_access_token = Mage::getStoreConfig("Social/twitterapi/access_token");
$oauth_access_token_secret = Mage::getStoreConfig("Social/twitterapi/access_token_secret");

जवाबों:


10

जब तक स्क्रिप्ट में वह साधन नहीं होता है जिसके द्वारा मैगेंटो में सामग्री को बदलने के लिए स्क्रिप्ट के लिए भेजे गए तर्कों जैसे कुछ के माध्यम से इंस्टॉल करें, तो नहीं, मुझे नहीं लगता कि यह सुरक्षा जोखिम है - इसमें Mage.phpकेवल वही शामिल है जो index.php(वेब रूट पर भी) करता है।


धन्यवाद @ जोनाथन हसी, जो सेंस बनाता है, ने इस पर विचार नहीं किया कि वह index.phpइसका इस्तेमाल कर रहा था
होली

8

कुछ अतिरिक्त व्यामोह में जोड़ने के लिए, आप app/Mage.phpनिरपेक्ष फ़ाइल सिस्टम पथ का उपयोग करके फ़ाइल को निर्दिष्ट करने के लिए आवश्यकता कथन को बदल सकते हैं , इसलिए PHP शामिल पथ का उपयोग नहीं किया जाता है:

require __DIR__ . '/app/Mage.php';

या, 5.3 से नीचे PHP के संस्करणों पर:

require dirname(__FILE__) . '/app/Mage.php';

बहुत सैद्धांतिक हमले वेक्टर जा रहा है कि एक हमलावर किसी भी तरह हेरफेर करने के लिए PHP पथ शामिल सक्षम है और इस तरह arbitraty शामिल कर सकता है app/Mage.phpफ़ाइलें।


3

यदि आप केवल एक ही व्यक्ति हैं जो इस फ़ाइल को एक्सेस करेंगे, तो if($_SERVER['REMOTE_ADDR']=='your.ip.address.here')इसे आईपी-प्रतिबंधित क्यों नहीं किया जाएगा? मैंने कई Magento डेवलपर्स देखे हैं जो Magento रूट में इस प्रकार की फाइलें रखते हैं और किसी भी तरह के प्रमाणीकरण के बिना व्यवस्थापक-संबंधित चीजें करते हैं। उदाहरण के लिए, मैं अपने एक मित्र मैगेंटो वेबसाइट पर गया और बस फ़ाइल का अनुमान लगाया http://example.com/test.phpऔर इसने मुझे आउटपुट Mail sent!लोल दिया । डेवलपर्स स्टैंडअलोन स्क्रिप्ट में कुछ डेटाबेस तालिकाओं को बदलने के लिए संवेदनशील चीजें भी लिखते हैं क्योंकि वे इसे एक बार करना चाहते हैं, और उसके लिए एक मॉड्यूल नहीं बनाना चाहते हैं।

मैं किसी को भी सुझाव दूंगा कि इस तरह की स्टैंडअलोन फाइलें जो केवल उनके लिए जरूरी हैं, सिर्फ आईपी को प्रतिबंधित करें, और एक बार उस फाइल पर आपका काम खत्म होने के बाद बस एक exit;फाइल के ऊपर रख दें। बस मेरे 2 सेंट।


1

ब्रीड ब्रेटन, इस प्रकार के कोड को कॉल करना हमेशा जोखिम भरा होगा। चूँकि आप twitter.php से Mage.php कह रहे हैं, आपको इसकी आवश्यकता है put proper file permission for twitter.php। या फिर कोई अन्य उपयोगकर्ता twitter.php के आपके कोड को फिर से लिख सकता है।Other wise it does not create any issue.


इस फ़ाइल के लिए 644 की मानक फ़ाइल अनुमतियां ठीक होनी चाहिए। यह भी याद रखें कि PHP फ़ाइलों को केवल वेबसर्वर उपयोगकर्ता के लिए पढ़ने की अनुमति की आवश्यकता होती है, इसलिए यदि आप इसका लाभ उठाना चाहते हैं तो जो भी कारण हो, उसके लिए फ़ाइल का संपादन प्रतिबंधित कर सकते हैं।
जोनाथन हसी

धन्यवाद @JonathanHussey ... आपकी सलाह के लिए
अमित बेरा

2
क्यों .. मुझे वोट कम मिला .. विस्फोट हो सकता है
अमित बेरा

मुझे नफरत है जब वे नीचे के वोट की व्याख्या नहीं करते हैं।
स्पेयर साइकिल

यह कुछ स्पष्टीकरण की आवश्यकता है, आसानी से गलत समझा जा सकता है: 1) इस संदर्भ में "उपयोगकर्ता" का अर्थ है सर्वर पर एक उपयोगकर्ता, अर्थात कोई है जो पहले से ही सर्वर तक पहुंच रखता है। 2) यह इस तथ्य से संबंधित नहीं है कि फ़ाइल में Mage.php शामिल है। अगर किसी के पास आपके सर्वर तक पहुंच है और वह फाइलें लिख सकता है, तो वह किसी भी फाइल में कोड जोड़ सकता है (या उदाहरण के लिए / मीडिया में एक नया निर्माण कर सकता है, जो अक्सर 777 पर सेट होता है)
फैबियन शेंगलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.