هل الطبقة mysqli في PHP حماية بنسبة 100٪ ضد حقن SQL؟
-
03-07-2019 - |
سؤال
ولقد رأيت الكثير من المقالات والأسئلة حول mysqli، وكل منهم يدعي أنه يحمي ضد حقن SQL. ولكن هل هو خداع الإثبات، أو لا يزال هناك بعض طريقة للحصول على من حوله. أنا غير مهتم في هجمات برمجة الموقع أو التصيد عبر، فقط حقن SQL.
وماذا ينبغي أن قلت في البداية هو أن أستخدمه البيانات المعدة. هذا هو ما قصدته مع mysqli. إذا كنت تستخدم عبارات المعدة دون أي سلسلة سلسلة، ثم هو مضمونا؟
المحلول
ولكن هل هو خداع الإثبات، أو لا يزال هناك بعض طريقة للحصول على من حوله.
اقتباس فقرة>لا، عليك أن تعرف ما تفعلونه. إذا كنت تستخدم المعلمات المربوطة (A الميزة التي MySqli يأتي مع)، أنت آمن تماما من الهجمات نوع حقن <م> من هذا الهجوم الموجه م>. هذا لا يمنعك - مبرمج - من تضمين السلاسل مباشرة، وبالتالي تمكين هجمات الحقن. لديك لاستخدام ميزة على النحو المنشود.
رد: تحرير
<اقتباس فقرة>وماذا ينبغي أن قلت في البداية هو أن أستخدمه البيانات المعدة. هذا هو ما قصدته مع mysqli. إذا كنت تستخدم عبارات المعدة دون أي سلسلة سلسلة، ثم هو مضمونا؟
اقتباس فقرة>ومضمونة لا تزال هذه الكلمة الخطيرة. ولكن كنت في مأمن من هجمات حقن للالمتغيرات التي لا بد من خلال البيانات المعدة. وذلك لأن تنتقل المعلمات المربوطة بشكل منفصل من الاستعلام SQL. مع اقتراب تضمين سلسلة "التقليدية"، يحتاج خادم قاعدة البيانات لتحليل المدخلات وهناك الكثير من الحالات حافة في ذلك (مجموعات الأحرف وما إلى ذلك). عندما يتم إرسال البيانات والاستعلام منفصل، وليس هناك إعراب الفعلي مستمرة (على الأقل ليس تحليل البيانات المتغيرة).
نصائح أخرى
وأنها لا تحمي من حقن لغة الاستعلامات البنيويه أفضل أي من وحدة الخلية القديمة، فقط يجعل القيام بذلك يسهل على المطور، الذي يمكن الآن استخدام البيانات المعدة بدلا من استدعاء mysql_real_escape_string.