أفضل 12 ممارسة أمان لـ PHP

نشرت: 2021-08-14

يعد الأمان موضوعًا مهمًا لجميع مطوري البرامج ، لكن مطوري PHP يواجهون بعض التحديات الفريدة. في منشور المدونة هذا ، سنستكشف أفضل 12 ممارسة أمان لـ PHP ، جنبًا إلى جنب مع كيفية تنفيذها في التعليمات البرمجية للمساعدة في الحفاظ على موقع الويب الخاص بك آمنًا. يمكنك دائمًا استخدام المحترفين في WebCitz للتعامل مع احتياجات برمجة PHP الخاصة بك!


1. قم بتحديث إصدار PHP الخاص بك بانتظام

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

بدأ المخترقون بالفعل في استغلال أحدث العيوب في PHP. أولئك الذين لديهم إصدارات أقدم سيكونون عرضة لاقتحاماتهم ما لم تقم بتغيير الإعداد الخاص بك!

يمكنك تجربة إصدار المعاينة ، لكن المستشارين الأمنيين يحذرون الشركات من تجنب معاينة إصدارات البرامج الجديدة لأنه قد لا يزال لديهم عيوب أمنية غير معروفة.

شعار PHP

2. لا تعرض بيانات حساسة للإنترنت عبر اتصال غير مشفر

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

قم بحماية هذه الملفات والمجلدات عن طريق تشفيرها قبل إرسالها عبر أي اتصال شبكة غير مشفر باستخدام TLS / SSL.

رسم قفل الأمان

3. الحماية من هجمات حقن SQL

تحدث ثغرة في حقن SQL (لغة الاستعلام الهيكلية) عندما يتم استخدام إدخال المستخدم في استعلام دون التحقق المناسب من نوعه والغرض منه ، مما يضر بمصداقية النتائج المعروضة من خلال الاستعلامات التالية المجمعة معًا من السلاسل المرسلة.

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

أفضل طريقة للحماية من هجمات حقن SQL هي تأمين الإدخال - منع المتسللين من حقن التعليمات البرمجية الخاصة بهم في موقع الويب عبر حقل نموذج أو مربع الاختراق. تريد تعقيم أي قيم يرسلها المستخدم قبل إدخالها في استعلام SQL ، مثل: $ input = filter_var ($ _ POST ['field']، FILTER_SANITIZE_STRING)؛ إذا (! blank ($ input)) {echo “لقد أدخلت:“. $ input. ”

"؛ } else {echo 'الرجاء إدخال شيء' ؛}. لاحظ كيف استخدمنا () فارغًا للتأكد من عدم وجود حقول فارغة.

أقفال الأمان على التوالي باللون الأزرق بالإضافة إلى واحدة باللون الأحمر في المنتصف ومفتوحة

4. تأكد من أنك تقوم بتخزين البيانات الحساسة بشكل آمن

عندما يتعلق الأمر بالحفاظ على أمان كلمات المرور ومعلومات بطاقة الائتمان ، فلا مجال للخطأ - فالمخاطر كبيرة جدًا إذا تمكن أحد المتطفلين من الوصول إلى هذه الملفات أو قواعد البيانات التي تحتوي على هذه المعلومات!

لتقليل مخاطر حدوث مثل هذا الهجوم ، استخدم دائمًا خوارزمية تشفير قوية عند تخزين البيانات الحساسة في قاعدة البيانات الخاصة بك - ويفضل أن يكون ذلك مع تشفير 128 بت AES مثل SHA512_RSA.

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

شخص يعمل على رف الخادم

5. لا تقم بإعادة استخدام كلمات المرور

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

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

اسم المستخدم وكلمة المرور حقول تسجيل الدخول

6. تأكد من أن تطبيقاتك ليست عرضة لهجمات XSS

XSS (Cross-Site Scripting) عبارة عن هجوم يتم فيه حقن تعليمات برمجية ضارة في موقع ويب ، ثم يتم تنفيذها على متصفح الزائر. يمكن أن يؤدي هذا غالبًا إلى سرقة ملفات تعريف الارتباط أو اختطاف الجلسة ، مما يمنح المتسللين الوصول إلى جميع بياناتك الحساسة دون الحاجة إلى إدخال بيانات الاعتماد الخاصة بهم - مثل كلمات المرور أو أرقام بطاقات الائتمان.

يمكن استغلال هذه الثغرة الأمنية باستخدام التحقق من صحة نموذج JavaScript على صفحات الويب ، بحيث يتم تنفيذ أي إدخال يدخله الزائرون تلقائيًا عبر تحديث الصفحة ، وعرض الارتباطات التشعبية ذات المحتوى النشط مثل الصور بداخلها ، وإلحاق المعلمات التي يوفرها المستخدم بعناوين URL ديناميكية مثل '؟ الحساب = 123 'إلخ.

هاكر جالس على المكتب

7. الحماية من هجمات CSRF

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

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

شخص القرصنة

8. لا تنس الرقع العادية!

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

أنت لا تعرف أبدًا الثغرة الأمنية التي وجدها شخص آخر ولكنك لست على دراية بها ، ومن الأفضل أن تظل على اطلاع بدلاً من اختراق موقع الويب الخاص بك!

شخص يتطفل بكلمة الأمن من ورائه

9. لا تترك وضع التصحيح ممكّنًا في بيئات الإنتاج

غالبًا ما يكون لرمز تصحيح الأخطاء إمكانات لتمكين أشياء مثل تحرير الملفات عن بُعد (باستخدام fopen ()) وإنشاء استعلامات SQL أولية عبر mysql_query ().

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

رسم زجاجي مكبّر فوق خطأ موجود على شاشة الكمبيوتر

10. تحقق من جدار الحماية للمنافذ المفتوحة

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

سيساعد ذلك في إبعاد الزائرين غير المرغوب فيهم إذا لم يتمكن المتسللون من العثور على نقطة دخول إلى نظامك يمكنهم من خلالها تنفيذ هجومهم بسهولة.

شخص ينظر إلى شاشة الكمبيوتر وعليها رمز

11. لا تستخدم "admin" كاسم حساب

إذا كنت تريد حماية نفسك من دخول شخص آخر إلى موقعك عن طريق تخمين كلمات المرور ، فحاول استخدام اسم مستخدم آخر ، مثل "المسؤول" أو أي شيء آخر غير واضح تمامًا.

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

على لوحة المفاتيح باستخدام بصمة الإصبع كمفتاح

12. البقاء على اطلاع بأحدث الثغرات الأمنية

قد يبدو الأمر مخيفًا في البداية ، ولكن البقاء على اطلاع بالثغرات الأمنية التي يجدها الآخرون سيساعد في الحفاظ على نظامك آمنًا في حالة حدوث أي تسريبات.

قد يكون تتبع كل هذه التحديثات أمرًا صعبًا - لحسن الحظ ، هناك العديد من الأدوات المتاحة الآن والتي تجعل هذه المهمة أسهل من أي وقت مضى. إحدى هذه الأدوات تسمى "Debian Long Term Support" ، وهي مصممة لدعم إصدارات متعددة من نظام التشغيل وجميع أنواع البرامج - بما في ذلك خوادم الويب مع PHP.

شخص يبتسم للكاميرا أثناء استخدام الكمبيوتر

استنتاج

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