الأمان

مستخدم التشغيل

يُوصى بتعيين مستخدم التشغيل بمستوى أذونات منخفض، على سبيل المثال، يجب أن يكون مستخدم التشغيل مماثلًا لمستخدم nginx. يمكن تعيين مستخدم التشغيل في config/server.php في الـ user و group. بالمثل، يتم تحديد مستخدم العملية المخصصة لتشغيل العمليات المخصصة عن طريق config/process.php في user و group.
يجب أن يكون مستخدم الرصد (monitor) بدون تعيين مستخدم التشغيل، لأنه يحتاج إلى صلاحيات عالية للعمل بشكل صحيح.

مواصفات المتحكم

تحتوي المجلدات الفرعية في دليل controller فقط على ملفات المتحكم (controller) ويُمنع وضع أي ملفات فئة أخرى. وإلا، قد يتم الوصول غير القانوني إلى ملفات الفئة في URL عند عدم تفعيل لاحقة المتحكم، مما يسبب عواقب غير متوقعة. على سبيل المثال، app/controller/model/User.php فعليًا هو فئة النموذج (Model)، ولكنه تم وضعه بشكل خاطئ في دليل controller. في حالة عدم تفعيل لاحقة المتحكم، قد يُمكن للمستخدمين الوصول إلى أي طرق في User.php من خلال URL مماثل لـ /model/user/xxx. لتجنب هذا النوع من الحالات، يُوصى بشدة باستخدام لاحقة المتحكم لتحديد بوضوح ملفات المتحكم.

تصفية XSS

نظرًا للتطبيقية، لا تقوم webman بتصفية طلبات XSS. يُوصى webman بشدة بتصفية XSS أثناء الإظهار بدلاً من التصفية قبل الإدخال في قاعدة البيانات. بالإضافة إلى ذلك، ستقوم نماذج مثل twig وblade وthink-template بتنفيذ تصفية XSS تلقائيًا، دون الحاجة إلى تصفية يدوية، وهو أمر مريح للغاية.

ملاحظة
إذا قمت بتصفية XSS قبل الإدخال في قاعدة البيانات، من المحتمل جدًا أن يسبب بعض مشكلات توافق البرامج المساعدة.

منع حقن SQL

لتجنب حقن SQL، يُرجى استخدام ORM قدر الإمكان، مثل illuminate/database، think-orm، وتجنب تجميع SQL يدويًا.

توجيه nginx

عندما يكون تطبيقك بحاجة إلى تعريضه للمستخدمين الخارجيين عبر الإنترنت، يُوصى بشدة بإضافة وكيل nginx قبل webman، مما يمكن أن يُقوم بتصفية بعض طلبات HTTP غير القانونية وزيادة الأمان. يُرجى الرجوع إلى وكيل nginx للتفاصيل.