سؤال

لدي حاليا إلى حد ما قوية التحقق من جانب الخادم في مكان, ولكن أنا أبحث عن بعض ردود الفعل للتأكد من أنني قد غطت جميع الزوايا.هنا موجز ما أفعله في هذه اللحظة:

  • ضمان مدخلات ليست فارغة ، أو طويلة جدا

  • الهروب سلاسل الاستعلام لمنع حقن SQL

  • باستخدام التعبيرات العادية رفض أحرف غير صالحة (هذا يعتمد على ما يتم تقديمه)

  • ترميز بعض علامات html ، مثل <script> (all tags are encoded when stored in a database, with some being decoded when queried to render in the page)

هل هناك أي شيء أنا في عداد المفقودين ؟ نماذج التعليمات البرمجية أو التعبيرات العادية موضع ترحيب.

هل كانت مفيدة؟

المحلول

يجب أن لا تحتاج إلى "الهروب" سلاسل الاستعلام لمنع حقن SQL - يجب أن يكون استخدام البيانات المعدة بدلا من ذلك.

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

لا ننسى أن ترميز HTML الكيانات على الإخراج - لمنع هجمات XSS.

نصائح أخرى

يجب ترميز كل علامة html, ليس فقط 'صالح' منها.هذا هو النقاش الساخن ، ولكن في الأساس يتلخص سيكون هناك دائما بعض غير صالحة HTML مزيج من أنك سوف تنسى أن التعامل معها بشكل صحيح (متداخلة علامات متطابقة الكلمات بعض المتصفحات تفسير 'صحيح' وهلم جرا).وبالتالي فإن الخيار الأكثر أمانا في رأيي هو مخزن كل شيء كما htmlentities ثم على إخراج طباعة التحقق من صحة HTML-آمنة-فرعية شجرة (كيانات) من المحتوى.

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

بالإضافة إلى ذلك تشمل العمل ضد الهجمات المعروفة مثل اجتياز الدليل و يحاول الوصول إلى شل.

هذا السؤال/الجواب بعض الردود التي كنت تبحث عن
(PHP المنحى ، ولكن بعد ذلك مرة أخرى لم تحدد اللغة/منصة وبعض ينطبق عليها ما وراء php العالم):

ما هي أفضل طريقة التعقيم إدخال المستخدم مع PHP?

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

أيضا, النظر في إعداد البيانات المعارين.الهروب من البيانات في استعلامات SQL هو شيء من الماضي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top