พิจารณาตั้งค่าopen_basedir
แบบ "ต่อไซต์" open_basedir
คือการตั้งค่า php.ini ซึ่งจะป้องกันสคริปต์ของคุณจากการเข้าถึงไฟล์นอกรายการสีขาวที่กำหนดไว้ หากเซิร์ฟเวอร์ของคุณโฮสต์หลายไซต์มันจะป้องกันไม่ให้เว็บไซต์หนึ่งอ่านการตั้งค่าฐานข้อมูลจากเว็บไซต์อื่น นอกจากนี้ยังจะป้องกันสคริปต์ php จากการเข้าถึง / แก้ไขไฟล์ระบบหลัก การติดตั้งฐานแบบเปิดนั้นง่ายมากเพียงแค่เพิ่มบรรทัด " php_admin_value open_basedir /my/list/of/folders:/as/a/colon/seperated/list
" ลงใน Apache vhost แต่ละรายการ
นอกจากนี้ให้พิจารณาปิดเครื่องมือสคริปต์ PHP สำหรับไซต์ / โฟลเดอร์ทั้งหมดที่ไม่ควรมีสคริปต์ PHP (เช่นโฟลเดอร์ภาพที่อัปโหลด) นี่เป็นเรื่องง่ายเพิ่ม "php_admin_value engine off" ให้กับ Apache VirtualHosts ที่ไม่ต้องการ php หากต้องการปิดใช้งาน PHP ในไดเรกทอรีให้ใส่สิ่งเดียวกันลงในแท็ก Directory
เรียกใช้การอนุญาตไฟล์ให้แน่นที่สุดหลีกเลี่ยงการเขียนการเข้าถึงสคริปต์ PHP สำหรับผู้ใช้ Apache สิ่งนี้จะป้องกันไม่ให้สคริปต์ที่ทำงานอยู่แก้ไขตัวเองหรือสคริปต์อื่น ๆ บนไซต์ / เซิร์ฟเวอร์เดียวกัน หลีกเลี่ยงการใช้งาน 777 หากเป็นไปได้ให้กำหนดสิทธิ์ขั้นต่ำที่จำเป็นในการเรียกใช้แอปพลิเคชันและใช้สิทธิ์เหล่านั้น
หากคุณโฮสต์หลายไซต์แต่ละแห่งมีฐานข้อมูลของตนเองใช้ผู้ใช้ MySQL / Postgres แยกต่างหากสำหรับแต่ละไซต์และตั้งค่าการอนุญาตสำหรับผู้ใช้แต่ละคนเพื่อให้พวกเขาสามารถเข้าถึงฐานข้อมูลที่เกี่ยวข้องเท่านั้น อีกครั้งนี้จะป้องกันสคริปต์หลอกลวงจากการดัดแปลงกับฐานข้อมูลของแอปพลิเคชันอื่น
Suosin, HardenedPHP, mod_security และสิ่งที่คล้ายกันล้วนมีค่าเช่นกัน แต่ใช้พวกเขานอกเหนือจากการกำหนดค่าที่ล็อคไว้อย่างแน่นหนาไม่ใช่แทนที่จะเป็น