2013-01-01 26 views
6

मैं हाल ही में कुछ php स्रोत कोड phpBB की तरह मंच सॉफ्टवेयर की विशेष रूप से लोगों को ढूंढ रहे थे, और esotalkphp - वेबसाइट वैश्विक चर

मैं एक बात गौर का उपयोग कर सुरक्षा, उनमें से ज्यादातर अपने पृष्ठ के शुरू में एक वैश्विक चर का इस्तेमाल किया कुछ प्रकार की सुरक्षा जैसे:

if (!defined("IN_ESOTALK")) exit; //For esotalk 
if (!defined("IN_PHPBB")) exit; //FOR phpbb 

यह किस प्रकार की सुरक्षा है? मुझे समझ में नहीं आता क्या आप मुझे समझा सकते हैं कि यह क्या रोकता है और कैसे?

धन्यवाद, विधु

+2

यह – SaidbakR

उत्तर

7

यह सुनिश्चित करें कि PHP स्क्रिप्ट जब तक ढांचा अप शुरू कर दिया है नहीं चलता बनाकर काम करता है। इस तरह उपयोगकर्ता उचित पृष्ठ से गुज़रने के बिना एक स्क्रिप्ट निष्पादित नहीं कर सकता है।

यहां एक उदाहरण है। हम 2 फ़ाइलें:

index.php

<?php 
    define("_MY_FRAMEWORK", 1); 
    echo 'started'; 
    require('script.php'); 
?> 

और script.php

<?php 
    if (!defined("_MY_FRAMEWORK")) exit; 
    echo "my script"; 
?> 

आप script.php सीधे चलाते हैं, तो कुछ नहीं होगा क्योंकि _MY_FRAMEWORK निर्धारित नहीं किया गया। यह बाहर निकल जाएगा।

हालांकि, अगर आप index.php चलाते हैं, जिसमें script.php शामिल है, तो स्क्रिप्ट जारी रहेगी क्योंकि आपने पहले _MY_FRAMEWORK को परिभाषित किया था। आपको पूरा आउटपुट मिलेगा: startedmy script के बाद।

@ गंबो एक अच्छा बिंदु बनाता है: यदि आपने पहले परिभाषित नहीं किया है, तो यह एक स्थिर को परिभाषित करता है जिसे बदला नहीं जा सकता है। user contributions to the PHP documentation यह समझने में सहायक हो सकता है कि यह कैसे काम करता है।

+2

के बाहर से स्क्रिप्ट तक पहुंच को रोकने के लिए आपको यह उल्लेख करना चाहिए कि ये स्थिरांक हैं और चर नहीं हैं। – Gumbo

1

यह register_globals का उपयोग कर परिवर्तनीय हेरफेर को भी रोकता है।

यदि php.ini में register_globals सक्षम है, तो उपयोगकर्ता URL में चर बदलकर स्क्रिप्ट में चर को संशोधित करने में सक्षम होते हैं, लेकिन इससे उन्हें निरंतर चर के मान को संशोधित करने की अनुमति नहीं दी जाएगी जो परिभाषित फ़ंक्शन का उपयोग करके परिभाषित किए गए थे

1

ये वैश्विक स्थिरांक हैं। इनके साथ वे सुनिश्चित करते हैं कि उनका सॉफ़्टवेयर चल रहा है कि इसका इरादा कैसा है।

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