الاستيلاء على اسم النطاق مع تدرج في PHP

StackOverflow https://stackoverflow.com/questions/226271

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا أعرف كيف لمعرفة اسم النطاق الحالي في PHP بالفعل، والمشكلة هي عندما أضع هذا الرمز في ملف ومن ثم إدراجه من ملقم آخر أنه يظهر اسم المجال من حيث يقع الملف. هل هناك أي طريقة لذلك لمعرفة المجال أو الموقع يحتوي على التعليمات البرمجية التضمين ()؟

هل كانت مفيدة؟

المحلول

ويمكنك تشغيله محليا باستخدام "وحدة التقييم" فإنه يجب استخدام المجال الصحيح تخزين السيناريو الخاص بك كملف نصي ثم تحميل البرنامج ومن ثم تنفيذ:

eval(file_get_contents("http://someDomain.com/somePhpscript.txt"));

نصائح أخرى

وأنت تفعل شيئا مثل:

include 'http://example.com/script.php';

ملاحظة: هذا النهج يعتبر عموما أن يكون شيئا من لا لا من الناحية الأمنية

.

وعلى أية حال، هو في الواقع يجري تنفيذ السيناريو المدرجة على خادم آخر، ثم خرج النصي يتم تنفيذه على الخادم الحالي. يمكنك الحصول على حول هذا بترديد الرمز الفعلي، شيء من هذا القبيل:

وحاليا:

<? 
//do something
echo '$v = '.$_SERVER['HTTP_HOST'].';'
?>

وسيلة أخرى:

<?
//do something
?>
$v = $_SERVER['HTTP_HOST'];

ولكن بعد ذلك ربما أنا سوء الفهم سؤالك.

إذا قمت بتضمين صفحة PHP من خادم آخر، فإن الصفحة الحصول على تحليل من قبل الملقم الأصلي وسترسل نتيجة للكم - الصفحة تتلقى ليست سوى النص، وشملت أي رمز PHP

.

وهذا هو الإختراق الخام، ولكن على الملقم البعيد، يمكن أن قمت بالبحث اسم المجال من $ _ENV [ 'REMOTE_HOST'].

وهذا من شأنه أن يكون اسم المجال من الرجل يفعل "تشمل" من وجهة نظر الملقم البعيد.

وأفترض أن يكون لديك سبب لرغبته في تنفيذ هذا الهيكل الغريب - القيود في بيئة المضيف الظاهري، أو شيء من هذا. أود أن أقترح النظر في البنية التحتية بديلة إذا كان ذلك ممكنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top