سؤال

ولقد رأيت الكثير من المقالات والأسئلة حول mysqli، وكل منهم يدعي أنه يحمي ضد حقن SQL. ولكن هل هو خداع الإثبات، أو لا يزال هناك بعض طريقة للحصول على من حوله. أنا غير مهتم في هجمات برمجة الموقع أو التصيد عبر، فقط حقن SQL.

وماذا ينبغي أن قلت في البداية هو أن أستخدمه البيانات المعدة. هذا هو ما قصدته مع mysqli. إذا كنت تستخدم عبارات المعدة دون أي سلسلة سلسلة، ثم هو مضمونا؟

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

المحلول

<اقتباس فقرة>   

ولكن هل هو خداع الإثبات، أو لا يزال هناك بعض طريقة للحصول على من حوله.

لا، عليك أن تعرف ما تفعلونه. إذا كنت تستخدم المعلمات المربوطة (A الميزة التي MySqli يأتي مع)، أنت آمن تماما من الهجمات نوع حقن <م> من هذا الهجوم الموجه . هذا لا يمنعك - مبرمج - من تضمين السلاسل مباشرة، وبالتالي تمكين هجمات الحقن. لديك لاستخدام ميزة على النحو المنشود.

رد: تحرير

<اقتباس فقرة>   

وماذا ينبغي أن قلت في البداية هو أن أستخدمه البيانات المعدة. هذا هو ما قصدته مع mysqli. إذا كنت تستخدم عبارات المعدة دون أي سلسلة سلسلة، ثم هو مضمونا؟

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

نصائح أخرى

وأنها لا تحمي من حقن لغة الاستعلامات البنيويه أفضل أي من وحدة الخلية القديمة، فقط يجعل القيام بذلك يسهل على المطور، الذي يمكن الآن استخدام البيانات المعدة بدلا من استدعاء mysql_real_escape_string.

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