انا مبتدئ في PHP وأستخدم بضع دوال لفلترة المدخلات من أكواد HTML والباك سلاش وغيرها, والسؤال: هل يكفي هذا للحماية من ثغرة XSS ؟
هل يكفي فلترة المدخلات في PHP للحماية من ثغرة XSS
نعم تكفى و لكن .. ليست المشكلة فى هل ستكفى .. المشكلة فى أن ستنسى أن تضع الحماية فى أحد المدخلات فتكون هناك ثغره :)
كما أنصحك بأن تتأكد من مصدر البيانات .. بمعنى عندما يقوم أحدهم بعمل submit ل form فى موقعك تأكد أن ال Referrer هو عنوان صفحة الفورم و أنه لم يقم بذلك من مصدر خارجى .
لا تنسى الحماية من ال csrf
هذه إحدى الروابط من مفضلتي
ثغرة الـxss سببها أن المبرمج نسي أن يحول escape رموز الـhtml مثل < إلى < عند العرض (لاحظ أن المشكلة تظهر عند العرض وليس عند الإدخال). حلها فقط أن تعمل escape عند عرض النصوص، استخدم htmlspecialchars في php، مثلاً http://codepad.org/8B5AGOVo. هذا حلها الفلترة والحذف ليست حلول.
لاتحذف أي شيء من مدخلات المستخدين أو تعدلها فهذا مزعج للمستخدمين، بعض التطبيقات السيئة إذا كتبت نص اختفى نصفه أو تحول لنجوم بسبب الفلترة، إذا كان المدخل خطأ، كأن تطلب رقم والمستخدم أدخل حرف، فأعطه رسالة أنه خطأ واطلب منه التصحيح، لكن لاتحذف أو تعدل شيء.
التعليقات