"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > متى يجب عليك اختيار "mysql_real_escape_string" بدلاً من "adslashes" للهروب من السلاسل في PHP؟

متى يجب عليك اختيار "mysql_real_escape_string" بدلاً من "adslashes" للهروب من السلاسل في PHP؟

تم النشر بتاريخ 2024-11-22
تصفح:181

When should you choose `mysql_real_escape_string` over `addslashes` for escaping strings in PHP?

mysql_real_escape_string vs addlashes: فهم الاختلافات

في PHP، غالبًا ما يتم استخدام الوظائف mysql_real_escape_string وadslashes لتطهير السلاسل المخصصة لاستعلامات قاعدة البيانات. على الرغم من وجود بعض أوجه التشابه بينهما، إلا أن هناك اختلافات رئيسية بينهما يمكن أن يكون لها آثار على أمان بياناتك وسلامتها.

addslashes

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

mysql_real_escape_string

mysql_real_escape_string هي وظيفة أكثر تخصصًا مصممة خصيصًا للاستخدام مع MySQL. وهي تستدعي وظيفة مكتبة MySQL mysql_real_escape_string، والتي تسبق الخطوط المائلة العكسية لمجموعة موسعة من الأحرف التي تتضمن، على سبيل المثال لا الحصر، تلك التي تم تجاوزها بواسطة خطوط مضافة -byte)، \n (تغذية الأسطر)، \r (سطر الإرجاع)، و\x1a (نهاية الملف).

الاختلافات الرئيسية

الفرق الأساسي بين addlashes وmysql_real_escape_string هو مجموعة الأحرف التي يهرب منها mysql_real_escape_string من نطاق أوسع من الأحرف ، بما في ذلك بعض أحرف التحكم وأحرف نهاية السطر التي لا تضيف خطوطًا.

بالإضافة إلى ذلك، يدرك mysql_real_escape_string المتطلبات المحددة لـ MySQL عند الهروب من السلاسل. على هذا النحو، قد يطبق قواعد هروب مختلفة بناءً على إصدار MySQL المستخدم. على سبيل المثال، تستخدم الإصدارات الحديثة من MySQL عادةً علامات الاقتباس المزدوجة للهروب من علامات الاقتباس المفردة، بينما تستخدم الإصدارات السابقة الخطوط المائلة العكسية. سيتم تكييف mysql_real_escape_string وفقًا لذلك، مما يضمن تهريب السلاسل بشكل صحيح لإصدار MySQL المحدد قيد الاستخدام.

أهمية الأحرف الإضافية التي تم تهريبها بواسطة mysql_real_escape_string

الأحرف التي تم تهريبها بواسطة mysql_real_escape_string ولكن ليس عن طريق addlashes تتضمن أحرف التحكم مثل \x00 و \x1a. يمكن أن يكون لهذه الأحرف عواقب غير مقصودة داخل قاعدة البيانات، مثل التسبب في تلف البيانات أو إنهاء اتصال قاعدة البيانات.

علاوة على ذلك، يمكن أن يكون الهروب من أحرف نهاية السطر (\n و \r) أمرًا بالغ الأهمية عند تخزين عدة أحرف -بيانات الخط. إذا لم يتم الهروب بشكل صحيح، يمكن لهذه الأحرف تقديم فواصل أسطر أو إرجاعات إلى بياناتك، مما قد يؤدي إلى تعطيل إمكانية قراءتها وسهولة استخدامها.

الاستنتاج

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3