شيء ما يمنعني من إرسال متحولات إلى أي ملف php موجود داخل مجلد الدروبال
السلام عليكم ورحمة الله وبركاته
في الحقيقة أحيي هذا المنتدى ومؤسسيه لأنه أول منتدى دروبال عربي وربما الوحيد مع العلم أن هذه هي مشاركتي الأولى
لدي ملف php يستقبل متحولات معينة ويؤدي أحداث معينة المهم كنت أتعامل معه قبل استعمالي للدروبال وكان يعمل جيداً ولكني بعد أن وضعته ضمن مجلد الدروبال لم يعد يستقبل المتحولات أعتقد أن السبب موجود إما في الملف .htaccess أو setting.php ولكنني لا أعرفه
أتمنى أن يساعدني أحد ما....
وشكراً....
- سَجل الدخـول لإرسَــال تـَعلـيق.


أهلاً و سهلاً بك في المنتدى
تتكلم عن ملف php كنت تستعمله في مشروع أخر لا يتعلق بدروبال و الآن تريد أن تستعمله في موقع يعمل بواسطة دروبال
في أي دليل أضفت ملفك؟
و كيف أعلمت دروبال بوجود الملف؟
ما علاقة htaccess و setting.php الأولى تتعلق في إعدادت خادم الويب و الثانبة تحتوي على معلومات قاعدة البيانات
عليك أن تطلع على كيفية كتابة الكود في دروبال Coding standards
و بعدها أطلع على كيفية إنشاء وحدة جديدة Module developer's guide لأنها الطريقة الوحيدة لكي تعلم دروبال بوجود ملفك و إعلامها بطريقة تنفيذه
اكتشفت السبب وكان من الملف .htaccess
جرب إنشاء ملف php و سمه redirector.php مثلاً فيه تعليمة واحدة فقط ولتكن إعادة توجيه إلى الموقع $SName وهذا كوده
<?php
header("location: http://$SName");
?>
واكتب في مكان ال url في المستعرض مثلاً
http://localhost/redirector.php?SName=www.google.com
هذا سوف يؤدي إلى فتح موقع قوقل ....صحيح؟؟
ثم انقل هذا الملف إلى مجلد الدروبال وكتب في مكان ال url ما يلي
http://localhost/MyDrupalSite/redirector.php?SName=www.google.com
ولاحظ أنه لن يعمل
الحل هو التالي:
في الملف .htaccess
اجعل قيمة المتحول
php_value register_globals
تتغير من الصفر إلى الواحد أينما وجدت ولاحظ أن الأمور ستسري على ما يرام
أذهب إلى تقرير الحالة
أذهب إلى تقرير الحالة و ابحث عن register_globals ما هي الملاحظة الموجودة عليها
شكراً للتنويه
هل تعتقد أن هذا يشكل خطر أمني فعلي على الموقع؟؟؟
وسؤالي هنا هو: هل يمكن أن أجعل register_globalsغير متاحة أي disabled وأستثني متحول وحيد مثل SName مثلاً؟؟؟؟
تفعيل register_globals
تفعيل register_globals يشكل ثغرة في أمن الموقع لأنها تتحكم في طريقة التعامل مع المتغيرات أسباب تعطيلها تتعلق بالمتغيرات الشاملة في البي اتش بي Environment, GET, POST, Cookie, Server
دروبال و كل وحداتها مطورة على اساس register_globals معطلة و المتغير register_globals يأخذ قيمتين 0 أو 1 و لا تستطيع إعطائه قيمة أخرى لاستثناء متغير واحد
على موقع http://www.php.net ابحث عن register_globals تجد أمثلة عن الثغرات التي تسببها