ความปลอดภัย
ผู้ใช้ที่รัน
แนะนำให้ตั้งค่าผู้ใช้ที่รันเป็นผู้ใช้ที่มีสิทธิ์ต่ำกว่า เช่น ให้ตรงกับผู้ใช้ที่รัน nginx ผู้ใช้ที่รันสามารถตั้งค่าได้ใน config/server.php
ใน user
และ group
ผู้ใช้สำหรับกระบวนการที่กำหนดเองก็สามารถระบุได้ใน config/process.php
ใน user
และ group
ควรทราบว่าห้ามตั้งค่าผู้ใช้ที่รันสำหรับกระบวนการ monitor เนื่องจากต้องการสิทธิ์สูงเพื่อให้ทำงานได้อย่างปกติ
ข้อกำหนดของตัวควบคุม
ในไดเรกทอรี controller
หรือในไดเรกทอรีย่อยสามารถเก็บเฉพาะไฟล์ตัวควบคุมเท่านั้น ห้ามเก็บไฟล์คลาสอื่น มิฉะนั้นเมื่อไม่ได้เปิด นามสกุลตัวควบคุม ไฟล์คลาสอาจถูกเข้าถึงได้จาก url อย่างไม่ถูกต้อง ทำให้เกิดผลกระทบที่ไม่สามารถคาดการณ์ได้
ตัวอย่างเช่น app/controller/model/User.php
เป็นคลาส Model แต่ถูกเก็บผิดที่ในไดเรกทอรี controller
ซึ่งเมื่อไม่ได้เปิด นามสกุลตัวควบคุม จะทำให้ผู้ใช้สามารถเข้าถึงวิธีการใด ๆ ใน User.php
ผ่าน model/user/xxx
ได้
เพื่อป้องกันสถานการณ์เช่นนี้อย่างเต็มที่ แนะนำให้ใช้ นามสกุลตัวควบคุม เพื่อทำเครื่องหมายว่าไฟล์ใดเป็นไฟล์ตัวควบคุมอย่างชัดเจน
การกรอง XSS
เพื่อความเป็นสากล webman ไม่มีการแปลง XSS สำหรับคำขอ
webman แนะนำอย่างยิ่งให้ทำการแปลง XSS ขณะทำการเรนเดอร์ แทนที่จะทำการแปลงก่อนเข้าสู่ฐานข้อมูล
และ template เช่น twig, blade, think-template จะทำการแปลง XSS โดยอัตโนมัติ ไม่จำเป็นต้องทำการแปลงด้วยตนเองซึ่งสะดวกมาก
คำแนะนำ
หากคุณทำการแปลง XSS ก่อนเข้าสู่ฐานข้อมูลอาจทำให้เกิดปัญหาความไม่เข้ากันบางอย่างกับปลั๊กอินของแอปพลิเคชัน
การป้องกัน SQL Injection
เพื่อป้องกันการโจมตี SQL injection ควรใช้ ORM เช่น illuminate/database, think-orm และเมื่อใช้ควรหลีกเลี่ยงการประกอบ SQL ด้วยตนเอง
nginx proxy
เมื่อแอปพลิเคชันของคุณต้องการเปิดเผยต่อผู้ใช้ภายนอก แนะนำให้เพิ่ม nginx proxy ก่อน webman เพื่อกรองคำขอ HTTP ที่ไม่ถูกต้องบางอย่าง เพิ่มความปลอดภัยขึ้น กรุณาอ้างอิง nginx proxy