ما هي قدرات mysql_real_escape_string() التي تتجاوز قدرات addlashes()؟
في تطوير الويب، وظائف مثل mysql_real_escape_string() و يلعب addlashes() أدوارًا حاسمة في حماية التطبيقات من هجمات حقن SQL. ومع ذلك، فإن فهم الفروق الدقيقة بين هذه الوظائف أمر ضروري لضمان الأمان الأمثل.
دور الوظائف الخاصة بقاعدة البيانات
في حين أنه قد تكون هناك خيارات بديلة مثل الاستعلامات ذات المعلمات، توفر الوظائف الخاصة بقاعدة البيانات مثل mysql_real_escape_string() مزايا محددة:
قدرات mysql_real_escape_string()
يقوم mysql_real_escape_string() بتعزيز addlashes() عن طريق إضافة شرطة مائلة إلى أحرف إضافية، بما في ذلك:
في المقابل، يضيف addlashes() فقط شرطة مائلة إلى ما يلي الأحرف:
ثغرة أمنية في حقن SQL مع addlashes () [] &&&] على الرغم من وظائفه، يظل تطبيق الويب الذي يعتمد فقط على addlashes() عرضة لهجمات حقن SQL. وذلك لأن addlashes() لا تفلت من جميع الأحرف التي من المحتمل أن يتم استغلالها، وخاصة علامات الاقتباس المزدوجة (").
على سبيل المثال، ضع في اعتبارك الاستعلام التالي:
SELECT * FROM users WHERE اسم المستخدم = '" . addlashes($_POST['اسم المستخدم']) . "';
SELECT * FROM users WHERE username = '" . addslashes($_POST['username']) . "';
SELECT * FROM users WHERE username = "" OR 1 = 1";
SELECT * FROM users WHERE username = "" OR 1 = 1";
الاستنتاج
بينما يوفر addlashes () حماية أساسية ضد حقن SQL، يوفر mysql_real_escape_string () دفاعًا أكثر قوة عن طريق الهروب من نطاق أوسع على هذا النحو، لتحقيق أقصى قدر من الأمان، يجب على مطوري الويب إعطاء الأولوية لاستخدام وظائف خاصة بقاعدة البيانات مثل mysql_real_escape_string() أو التفكير في اعتمادها. استعلامات ذات معلمات لإزالة أي ثغرات أمنية مرتبطة بمعالجة الإدخال.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3