कल्पना करें कि एक खिलौना PHP एप्लिकेशन पूर्ण स्थानीय फ़ाइल समावेशन के लिए कमजोर है, उदा।क्यों शामिल है ('php: // input') काम नहीं करता है?
<?php include($_GET['action']);
मैं इसे का फायदा उठाने के लिए निम्न अनुरोध करने की कोशिश की:
POST /?action=php://input HTTP/1.1
Host: XXXXXXXXXXXXXXXXX
Content-Length: 3
foo
यह प्रभावी ढंग से कार्यान्वित अनुरोध शरीर foo
साथ include('php://input');
, तो मैं यह foo
मुद्रित करने के लिए उम्मीद करेंगे। हालांकि, मुझे निम्न त्रुटि
<br />
<b>Warning</b>: include(php://input): failed to open stream: operation failed in <b>XXXXXXXXXXXXXXXXX</b> on line <b>12</b><br />
<br />
<b>Warning</b>: include(): Failed opening 'php://input' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in <b>XXXXXXXXXXXXXXXXXXX</b> on line <b>12</b><br />
यहां समस्या क्या है? क्या यह एक PHP सुरक्षा सुविधा है? यदि हां, तो क्या कोई PHP स्रोत कोड के जिम्मेदार हिस्से को इंगित कर सकता है जो इसे कम करता है?
के बारे में क्या कस्टम धाराओं? 'Stream_wrapper_register' और वह जैज़ का उपयोग करना? – Halcyon
अपनी कॉन्फ़िगरेशन में इस विकल्प का मान देखें http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-include – Gustek
@ हेलिसन मैं सुन रहा हूं। यदि आपके पास फ़ाइल-लेखन आदिम (जैसे 'session_start()' या एप्लिकेशन-विशिष्ट लॉगिंग इत्यादि) –