PHP هي لغة برمجة مواقع ويب شائعة جدًا، لكن أمانها الأساسي ضعيف جدًا. توضح هذه المقالة خطة تحسين PHP (مشروع Hardened-PHP) وتوفر خطة Suhosi الجديدة تكوين أمان PHP محسنًا.
PHP هي لغة البرمجة النصية لمواقع الويب المثيرة للجدل ولكنها الأكثر شعبية. إنها تحظى بشعبية بسبب سعرها المنخفض، ومع ذلك، أدى هذا السعر المنخفض إلى ظهور المزيد والمزيد من تطبيقات مواقع الويب المكتوبة بلغة PHP، وفي الوقت نفسه، يتعرض المزيد والمزيد من PHP نفسها من حيث الثغرات الأمنية تظهر الميزات أن PHP غير موثوقة إلى حد كبير، ولكن في نفس الوقت لغة البرمجة النصية نفسها مرنة للغاية، ومن السهل تنفيذ التعليمات البرمجية باستخدامها، ولكن هذه الأكواد متضخمة وغير آمنة، على الرغم من أنها بهذه الطريقة لا تزال تحتوي على الكثير المستخدمين. يمكنك أن تفترض أن التطبيقات بجميع أنواعها تظهر، مرارًا وتكرارًا، هذه الثغرة الأمنية: عرضة لحقن SQL، والبرمجة النصية عبر المواقع، والتنفيذ التعسفي، والمزيد.
نظرًا لتجاهل إجراءات الأمان المضمنة في PHP، مثل الوضع الآمن وopen_basedir، يقوم مشروع تحسين PHP بإنشاء لغة PHP أكثر أمانًا ويقوم أيضًا بإجراء فحوصات التحقق من الصحة على PHP. في البداية، تم تحقيق ذلك من خلال تصحيحات PHP المحسنة التي تطلبت تصحيح PHP نفسه وإعادة ترجمته. مؤخرًا، أصدر مشروع تحسين PHP مشروعًا جديدًا يسمى Suhosin.
يتكون Sohosin من جزأين: الجزء الأول عبارة عن تصحيح PHP يعمل هذا التصحيح على تقوية محرك Zend نفسه لتجنب تجاوزات المخزن المؤقت المحتملة ومنع نقاط الضعف ذات الصلة. الجزء الثاني هو امتداد Suhosin، وهو وحدة مستقلة لـ PHP. يمكن أن يعمل الجزأين معًا، أو يمكن أن يعمل الامتداد بشكل مستقل.
لا يرغب المطورون في الحفاظ على عمليات تثبيت PHP الخاصة بهم من أجل تحقيق الأمان ويفضلون بالتأكيد استخدام PHP مباشرة على نظام توزيع Linux الذي يقدمه البائع، وذلك باستخدام وحدات الامتداد لتوفير المزيد من ميزات الأمان التي لا يمكن أن تمتلكها PHP نفسها.
الامتداد سهل التثبيت، ويمكن أيضًا تثبيته عبر PECL، أو تنزيله وتجميعه:
$ tar xvzf suhosin-0.9.17
$ cd suhosin-0.9.17
$ phpize
$ ./configure
$ make
$ sudo make install
لاستخدام suhosin؛ ، تحتاج أيضًا إلى إضافة /etc/php.ini، كما هو موضح أدناه:
Extension=suhosin.so
، خيارات التكوين الافتراضية كافية لمعظم الأشخاص. من أجل تعزيز الإعدادات، يمكنك إضافة القيم المقابلة في /etc/php.ini. يتم تقديم خيارات التكوين المختلفة بالتفصيل على موقع الويب، ويمكن أن تساعدك هذه التعليمات في التكوين الأولي.
باستخدام Suhosin، يمكنك الحصول على بعض سجلات الأخطاء. يمكنك وضع هذه السجلات في سجل النظام أو كتابتها في أي ملفات سجل أخرى في نفس الوقت؛ ويمكنه أيضًا إنشاء قوائم سوداء وقوائم بيضاء لكل مضيف افتراضي، ويمكنك تصفية GET وPOST الطلبات وتحميل الملفات وملفات تعريف الارتباط. يمكنك أيضًا إرسال جلسات وملفات تعريف الارتباط مشفرة، وإعداد مساحة تخزين لا يمكن إرسالها، والمزيد. على عكس تصحيح تقوية PHP الأصلي، فإن Suhosin متوافق مع ملحقات الطرف الثالث مثل Zend Optimizer.