1. PHP
3

هل إستخدام mysqli عوضاً عن mysql يحمي من ثغرة sql injection و لا حاجة لوضع أي دالة للحماية ؟؟

  • ahmed3hamdan
  • 2015-06-03T18:35:14+00:00
  • رابط مختصر
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

  • الأفضل
  • الأحدث
  • الأقدم
1
supercoder 2015-06-03T19:13:04+00:00 أضف ردا
  • رابط مختصر

هل تعرف ماذا تعني sql-injection

ببساطة هذا مثال ل sql تسجيل دخول

select * from users where id = {$_POST['name']}

في هذا المثال مُبرمج ليس لديه خبرة تخيل المستخدم ادخل هذا النص

0 or 0 = 0

سيكون الاستعلام هكذا

select * from users where id = 0 or 0 = 0

بالطبع 0 = 0 تخيل الدخول هنا للوحة التحكم سيستطيع المستخدم

وبالنسبة للنصوص يُمكن وضع ' لإنهائها لذا المكتبة لن تفهم عن ماذا تستعلم وتقوم بالترقيع عليك أنت بحماية نفسك.

0
ahmed3hamdan 2015-06-03T19:56:26+00:00 أضف ردا
  • رابط مختصر

مشكور أخي

ولكن يرجى قراءة السؤال مرة أخرى :3

اخي انا افهم مذا تعني ثغرة الحقن

و نستخدم دالة addslashes او mysql_real_escape_string للحماية بوضع سلاش

اتمتى ان تكون فهت قصدي :3

1
sami-abdo 2015-06-03T19:56:54+00:00 أضف ردا
  • رابط مختصر

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

0
ahmed3hamdan 2015-06-03T20:07:03+00:00 أضف ردا
  • رابط مختصر

مشكور, و السؤال هنا يتجدد هل PDO محمية من الثغرات المتعلقة بقاعدة البيانات ؟

0
sami-abdo 2015-06-03T20:08:45+00:00 أضف ردا
  • رابط مختصر

نعم و لكن تحتاج إلي مبرمج فطن

1
ahmedsaoud31 2015-06-04T01:16:45+00:00 أضف ردا
  • رابط مختصر
  • إستخدامك للـ mysqli لن يحميك من ثغرة sql injection

  • لحماية تطبيقاتك من ثغرات الـ sql injection عليك فلترة المدخلات التي تستخدمها في الإستعلامات بشكل جيد، يمكنك هذا من خلال التعابير القياسية Regular expressions

1
راشد المري 2015-06-04T02:40:17+00:00 أضف ردا
  • رابط مختصر

للأجابة المحددة على سؤالك،

لا ليس بمجرد استخدام MySQLi بل باستخدام طريقة Prepare سواء في MySQLi او PDO تساعد على الحماية من Injections طبعاً مع bound للمتغيرات المدخلة من قبل المستخدم. وآخر ما توصلت اليه شخصياً (انك لاتحتاج لوضع يا دالة اخرى للحماية من حقن قاعدة البيانات).

مثال على استخدام Prepare

http://codeshare.io/TPcmK
0
ahmed3hamdan 2015-06-04T11:28:15+00:00 أضف ردا
  • رابط مختصر

مشكور اخي, كنت اظن انه لا جديد في PDO :)

ووجدت أنه بالفعل خاصية bindParam أو bindValue فعالة جداً و رائعة في الحماية

شكراً على المساعدة

PHP

مجتمع مخصص للغة الـ PHP

4.94 ألف متابع

أطلق موقعك الإلكتروني في دقائق

صمم موقعك كاملا بالسحب والإفلات بدون خبرة برمجية، واحجز مكانك على الإنترنت.

أنشئ موقعك الآن

اقرأ أيضًا

  • مشكلة في استدعاء وتخزين البيانات في mysqli
  • هل أستعمل mysql أم mysqli ؟
  • دورة عملية: مشروع ادارة المبيعات على الويب بلغة - MySQL و PHP |
  • هل من مشكلة في استخدام MySqli و PDO
  • هل تكفي دالة strip_tags من حماية المدخلات ؟

انسخ هذا الرابط:

تنبيه