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

▢ التعليقات (0)