سؤال

هل يجب أن أستخدم mysql_real_escape_string() وظيفة في استفسارات MySQL الخاصة بي $_SESSION المتغيرات؟ نظريا ، و $_SESSION لا يمكن تعديل المتغيرات بواسطة المستخدم النهائي على عكس $_GET أو $_POST المتغيرات أليس كذلك؟

شكرًا :)

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

المحلول

بغض النظر عما إذا كان بإمكان المستخدم تعديل البيانات ، فربما تريد الهروب منها على أي حال في حال احتجت إلى البيانات لاحتواء الأحرف التي من شأنها كسر SQL (عروض الأسعار ، إلخ).

والأفضل من ذلك ، استخدام المعلمات المربوطة ولن تضطر إلى القلق بشأن ذلك.

نصائح أخرى

لا تهرب/اقتبس/تشفير النص حتى تكون في النقطة التي تحتاج إليها. يجب أن تكون التمثيلات الداخلية "الخام" قدر الإمكان.

يمكنك الإجابة على السؤال بنفسك باتباع خط التفكير هذا:

هل نشأت القيمة في $ _session من مدخلات المستخدم؟

إذا كان الأمر كذلك ، هل تم تطهيره بالفعل؟

من الناحية النظرية ، لا يمكن تعديل متغيرات $ _session بواسطة المستخدم النهائي

لا ، ولكن يجب أن تكون البيانات تأتي من مكان ما.

يجب عليك الهروب من أي إخراج من PHP ، باستخدام الطريقة المفيدة للوجهة عند النقطة التي يغادر فيها PHP.

جيم

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