الأمان

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

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

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

يُسمح فقط بوضع ملفات المتحكم في مجلد controller أو مجلداته الفرعية، ويُمنع وضع ملفات الفئات الأخرى. وإلا، عند عدم تفعيل لاحقة المتحكم، قد يتم الوصول إلى ملفات الفئات بشكل غير مشروع عبر عنوان URL، مما يؤدي إلى عواقب غير متوقعة.
مثال: app/controller/model/User.php هو في الواقع فئة Model، لكنه وُضع بالخطأ في مجلد controller. عند عدم تفعيل لاحقة المتحكم، سيتمكن المستخدمون من الوصول إلى أي دالة في User.php عبر عناوين مثل /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.