PHP เป็นภาษาสคริปต์เว็บไซต์ที่ได้รับความนิยมมาก แต่ความปลอดภัยโดยธรรมชาตินั้นอ่อนแอมาก บทความนี้จะอธิบายแผนการปรับปรุง PHP (โครงการ Hardened-PHP) และแผน Suhosi ใหม่มีการกำหนดค่าความปลอดภัย PHP ที่ได้รับการปรับปรุง
PHP เป็นภาษาสคริปต์เว็บไซต์ที่เป็นที่ถกเถียงแต่ได้รับความนิยมมากที่สุด ได้รับความนิยมเนื่องจากมีราคาถูก อย่างไรก็ตาม ราคาที่ต่ำนี้ทำให้มีแอปพลิเคชันเว็บไซต์ที่เขียนด้วย PHP มากขึ้นเรื่อยๆ และในขณะเดียวกัน PHP เองก็ถูกเปิดเผยในแง่ของช่องโหว่ด้านความปลอดภัยมากขึ้นเรื่อยๆ คุณสมบัติต่างๆ แสดงให้เห็นว่า PHP นั้นไม่น่าเชื่อถืออย่างมาก แต่ในขณะเดียวกัน ภาษาสคริปต์เองก็มีความยืดหยุ่นสูง และง่ายต่อการใช้งานโค้ดด้วย แต่โค้ดเหล่านี้บวมและไม่ปลอดภัย แม้ว่าจะเป็นในลักษณะนี้ แต่ก็ยังมีอีกมากมาย ผู้ใช้ คุณสามารถสันนิษฐานได้ว่าแอปพลิเคชันทุกประเภทแสดงช่องโหว่นี้ครั้งแล้วครั้งเล่า: เสี่ยงต่อการถูกแทรก SQL, การเขียนสคริปต์ข้ามไซต์, การดำเนินการตามอำเภอใจ และอื่นๆ
เนื่องจากมาตรการรักษาความปลอดภัย PHP ในตัว เช่น safe_mode และ open_basedir จะถูกละเว้น โครงการเพิ่มประสิทธิภาพ PHP จะสร้าง PHP ที่ปลอดภัยยิ่งขึ้น และยังทำการตรวจสอบความถูกต้องบน PHP อีกด้วย ในขั้นต้น สิ่งเหล่านี้สำเร็จได้ด้วยแพตช์ PHP ที่ได้รับการปรับปรุง ซึ่งจำเป็นต้องมี PHP เพื่อรับแพตช์และคอมไพล์ใหม่ ล่าสุด PHP Enhancement Project ได้เปิดตัวโปรเจ็กต์ใหม่ชื่อ 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