أفضل النصائح لأمان Laravel

نشرت: 2021-12-10

Laravel هو أحد أكثر الأطر شيوعًا في PHP. يحتوي على الكثير من الميزات الرائعة التي تجعل تطوير تطبيقات الويب أمرًا سهلاً. ومع ذلك ، فإنه يحتوي أيضًا على نصيبه من الثغرات الأمنية التي يجب أن تكون على دراية بها. سيناقش منشور المدونة هذا بعض أفضل الممارسات للمساعدة في الحفاظ على أمان تطبيقك والتأكد من عدم اختراق بيانات العميل.

في ملاحظة جانبية ، إذا كنت تعمل كثيرًا مع PHP ، تحقق من أفضل 10 ماسحات ضوئية لأمان كود PHP!

أفضل النصائح لأمان Laravel

سأتحدث الآن عن بعض أفضل الممارسات التي يمكنك استخدامها للمساعدة في تأمين تطبيق Laravel الخاص بك.

ابقها محدثة

أولاً وقبل كل شيء ، تأكد دائمًا من تحديث برنامجك باستمرار. يتضمن هذا الإطار نفسه وأي من مكتبات الجهات الخارجية التي تستخدمها. يتم اكتشاف ثغرات أمنية جديدة طوال الوقت ، لذلك من المهم التأكد من أنك على دراية بنقاط الضعف التي يتم إصلاحها ومتى يتم إصلاحها. يمكن أن يوفر لك الكثير من المتاعب إذا كانت هناك مشكلة تتعلق بأمانك في المستقبل!

تقليل ثغرات Laravel من CSRF

يحدث تزوير طلب عبر الموقع (CSRF) عندما يخدع المهاجم المستخدم لاتخاذ إجراء بشأن تطبيق ويب تمت مصادقته بالفعل. الهدف هو خداع المستخدمين (أو الروبوتات الآلية) لإرسال الإجراءات كما لو كانوا هم بدلاً منك.

من الطرق الشائعة التي يمكن أن يحدث بها ذلك ، على سبيل المثال ، استخدام منصات البريد الإلكتروني أو الرسائل التي تدعم تضمين الصور. ستحتوي هذه الصور على بيانات نموذج مخفية تم إنشاؤها باستخدام JavaScript وإرسالها تلقائيًا دون أن يعرف المستخدم ما حدث للتو!

نظام مصادقة Laravel

نظام مصادقة Laravel هو أحد نقاط قوته. يوفر طريقة سهلة لمصادقة المستخدمين وإدارة الأذونات ، ولكنه يحتوي أيضًا على بعض نقاط الضعف الأمنية. تتمثل إحدى المشكلات الرئيسية في نظام مصادقة Laravel في أنه افتراضيًا لا يبطل الجلسات عندما يقوم المستخدم بتسجيل الخروج. يمكن إصلاح ذلك بسهولة عن طريق ضبط مهلة الجلسة على 0 في ملف env.

الحماية ضد XSS - منع البرمجة النصية عبر المواقع

هذه ثغرة أمنية تسمح للمهاجمين بتنفيذ تعليمات برمجية نصية في سياق التطبيق الخاص بك. يمكن أن يؤدي ذلك إلى اختطاف الجلسات وهجمات التصيد وغير ذلك الكثير! يحدث XSS عندما يتم تضمين مدخلات المستخدم في صفحة HTML دون التحقق من صحتها أو تشفيرها أولاً.

أفضل طريقة لمنع حدوث ذلك هي استخدام بنية الأقواس المجعدة الثلاثية لمحرك قالب Laravel Blade حيثما أمكن ذلك: {{{}}}. نظرًا لأنه تم تنفيذه كميزة أمان افتراضيًا ، يجب عليك استخدامه في كل مكان بدلاً من تكرار مدخلات المستخدم مباشرةً من أي ملف مسار / وحدة تحكم لأن هؤلاء قد يكونون عرضة للخطر.

حقن SQL

إدخال SQL هو ثغرة أمنية تسمح للمهاجمين بتنفيذ عبارات SQL في سياق تطبيقك. هذا يمكن أن يؤدي إلى فقدان البيانات والمعلومات المسروقة والمزيد! أفضل طريقة لمنع حدوث ذلك هي استخدام العبارات المعدة. يوفر Laravel طريقة سهلة للقيام بذلك باستخدام منشئ الاستعلام الخاص به. يجب عليك استخدام الاستعلامات ذات المعلمات قدر الإمكان في تطبيقك.

تصفية والتحقق من صحة جميع البيانات

واحدة من أكثر الثغرات الأمنية شيوعًا التي يقوم بها المطورون هي عدم التحقق من صحة إدخال المستخدم. يمكن أن يؤدي هذا إلى أشياء مثل هجمات الحقن ، مثل البرمجة النصية عبر المواقع (XSS). يوفر Laravel طريقة بسيطة لتصفية والتحقق من صحة جميع البيانات الواردة إلى تطبيقك من خلال مرشحات لأنواع مختلفة من المعلومات.

الجلسات غير صالحة

هناك عدة طرق لضمان أمان تطبيق Laravel الخاص بك وأحد أهم الأشياء التي يمكنك القيام بها هو إدارة الجلسات. يجب حماية إطار عمل التطبيق بأي ثمن لأن أي تغيير كبير في حالته قد يجعله عرضة لعوامل الهجوم.

من خلال إتلاف جلستك وإبطالها تلقائيًا ، يضمن مطورو Laravel Security أنك آمن.

تخزين كلمة المرور باستخدام وظائف التجزئة

عند إنشاء حساب مستخدم جديد في Laravel ، سيستخدم إطار العمل Bcrypt لتجزئة كلمة مرورك قبل تخزينها. تم تصميم وظائف التجزئة بحيث يصعب عكسها ، مما يجعلها رائعة لكلمات المرور لأن المستخدمين لا يضطرون إلى تذكر سلاسل عشوائية من الأحرف.

تحقق من تكوين SSL / TLS

تعد شهادات SSL مهمة أيضًا في أمان تطبيقك. إذا كنت تستخدم إصدارًا أقدم ، فمن الأفضل التحديث حتى تتمكن من توفير اتصال آمن وآمن على كلا الجانبين (خادم المستعرض).

طلب حد السعر

يعد تحديد المعدل طريقة بسيطة وفعالة لمنع المستخدمين المؤذيين من زيادة تحميل تطبيقك بالطلبات. يوفر Laravel محدد معدل سهل الاستخدام لهذا الغرض ، والذي يمكنك إرفاقه بأي طلب في حالة وصوله إلى حد معين من الزيارات في الدقيقة.

سجل كل شيء

من الجيد دائمًا تسجيل كل ما يحدث في تطبيقك ، بما في ذلك الأخطاء. يمكن أن يساعدك ذلك في استكشاف المشكلات وإصلاحها وتقديم معلومات قيمة في حالة حدوث خطأ ما. يجعل Laravel من السهل تسجيل كل أنشطة تطبيقك من خلال وظائف التسجيل المدمجة فيه.

إرسال كافة رؤوس الأمان المتاحة

يمكنك أيضًا تحسين أمان تطبيق Laravel الخاص بك عن طريق إرسال جميع رؤوس الأمان المتاحة. هذه هي الرؤوس التي توفر معلومات حول التطبيق الخاص بك وتساعد على حمايته من الهجمات المختلفة. يوفر Laravel طريقة لإرسال هذه الرؤوس بسهولة باستخدام برامجه الوسيطة المضمنة.

خيارات X-Frame

بالإضافة إلى إرسال جميع رؤوس الأمان المتاحة ، يمكنك أيضًا تحسين أمان تطبيقك عن طريق منع حقنه في مواقع أخرى. يتم ذلك من خلال شيء يسمى خيار X-Frame - رأس يمنع وضع موقعك داخل موقع ويب آخر iframe.

حماية X-XSS

رأس أمان مهم آخر لتضمينه هو X-XSS-Protection. يمنع هذا تطبيقك من الانفتاح على هجمات البرمجة النصية عبر المواقع ، والتي تعد من أكثرها شيوعًا على الويب اليوم.

HSTS

يعد رأس HSTS طريقة رائعة أخرى لتحسين أمان تطبيقك. يخبر هذا العنوان المتصفحات بأنه يجب عليهم الاتصال بموقعك عبر اتصال آمن فقط ، مما يساعد في الحماية من هجمات الرجل في الوسط.

نهج أمان المحتوى

يخبر هذا العنوان المتصفحات بأنواع المحتوى التي يجب أن تسمح بتحميلها على موقعك ، مما يساعد على الحماية من أشياء مثل البرمجة النصية عبر المواقع والهجمات الضارة الأخرى.

X- نوع المحتوى- خيارات

يمنع هذا الرأس المتصفح من محاولة شم نوع MIME للملف الذي تقوم بربطه. يمكن أن يساعد ذلك في منع أشياء مثل الهجمات القائمة على نوع المحتوى ، والتي يشيع استخدامها من قبل المتسللين ومجرمي الإنترنت اليوم.

لديك سياسة أمان المحتوى

من أفضل الطرق لتحسين أمان تطبيقك أن يكون لديك سياسة أمان للمحتوى. هذه مجموعة من القواعد تخبر المتصفحات بأنواع المحتوى التي يجب أن تسمح بتحميلها على موقعك. باستخدام نهج أمان المحتوى ، يمكنك المساعدة في حماية تطبيقك من العديد من أنواع الهجمات المختلفة.

حماية ملفات تعريف الارتباط

تعد ملفات تعريف الارتباط طريقة شائعة يستخدمها المتسللون لسرقة المعلومات من المستخدمين. يمكنك المساعدة في حماية ملفات تعريف الارتباط الخاصة بك باستخدام علامتي HttpOnly و Secure ، والتي ستخبر المستعرضات بعدم السماح للبرامج النصية بالوصول إليها والسماح بالاتصالات الآمنة فقط لاستردادها ، على التوالي.

حزم أمان Laravel

فيما يلي بعض من أفضل حزم الأمان المتوفرة في Laravel.

Laravel-ACL

توفر حزمة Laravel-ACL طريقة لحماية طرق التحكم مثل CRUD والمسارات في التطبيقات ، بالإضافة إلى ضمان حصولك على الأذونات الصحيحة مع التحكم في الوصول المستند إلى الدور.

أمان Laravel

يضمن Laravel Security أن تظل قاعدة الكود الخاصة بك آمنة من هجمات XSS بميزاتها المفيدة.

مكون أمان Laravel

من أجل حماية أصولك الحساسة ، تحتاج إلى حزمة تحتوي على نواة أمان Laravel و Symfony. هذا واحد سوف يعمل على ما يرام!

استنتاج

في الختام ، هناك بعض أفضل الممارسات التي يمكنك استخدامها للمساعدة في تأمين تطبيق Laravel الخاص بك. تأكد من تحديث برنامجك باستمرار ، وتقليل نقاط ضعف CSRF ، والحماية من هجمات XSS ، واستخدام البيانات المعدة قدر الإمكان. سيساعدك اتباع هذه النصائح في ضمان أن بيانات العميل آمنة ومأمونة. شكرا للقراءة!