المحاور الأساسية وخطوات التحصين
🔒 طبيعة عمل محركات القوالب (Template Engines)
دمج المتغيرات الديناميكية مع نصوص HTML الثابتة ومخاطر تمرير مدخلات المستخدم كجزء من بنية القالب نفسه.
🔒 منهجية اكتشاف الـ SSTI عبر العمليات الحسابية المتعددة
إرسال تعبيرات مثل `{{7*7}}` أو `${7*7}` وتتبع محرك القالب المستخدم بناءً على المخرجات وطريقة المعالجة.
🔒 الوصول لتنفيذ الأوامر (Remote Code Execution)
استكشاف كائنات البيئة الداخلية (مثل `__mro__` و `__subclasses__` في بايثون) لاستدعاء أدوات النظام.
💡 نصيحة وأداة المهندس الأمني: مرر دائماً مدخلات المستخدم كقيم للمتغيرات (Variables) وليس كأجزاء مدمجة في قالب التصميم نفسه.
⚠️ معايير الأمان والتحذيرات الهندسية:
لا تعتمد أبداً على قيود الواجهة الأمامية (Client-Side) كخط دفاع أمني؛ يجب دائماً التحقق من صحة وتطهير كافة البيانات والتفويض في خادم الويب (Server-Side).
📌 أفضل الممارسات والتوصيات الهندسية:
- تطبيق مبدأ الصلاحيات الأقل (Principle of Least Privilege) على كافة مستويات التطبيق وقواعد البيانات.
- ترميز المخرجات المعتمد على السياق واستخدام الاستعلامات المعلمة (Parameterized Queries) لمنع كافة أنواع الحقن.
- دمج الفحص الأمني التلقائي (SAST & DAST) في خطوط الـ CI/CD لاكتشاف ومعالجة الثغرات مبكراً.
