English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تحليل استخدام functions htmlentities وhtmlspecialchars في php لفیلتر کردن ورودی

يشرح هذا المثال كيفية استخدام وظائف htmlentities وhtmlspecialchars في فیلتر المدخلات في PHP. نتشارك هذا معكم للاستفادة، وهو كالتالي:

فیلتر کردن المدخلات (أي بيانات تأتي من أي مصدر مذكور) يعني تنسيق أو حذف الحروف غير الآمنة. يجب فیلتر بيانات المدخلات قبل وصولها إلى طبقة التخزين للتطبيق. هذا هو الدفاع الأول. إذا كان نموذج تعليقات الموقع يستقبل HTML، فإن الزائر يمكنه إضافة علامات <script> الخبيثة دون أي عائق، مثل ما يلي:

<p>
  اختبار الخاص بي
</p>
<script>alert(123)</script>

في المثال السابق. إذا لم يتم فیلتر هذا التعليق، فإن الكود الخبيث سيتم تخزينه في قاعدة البيانات، ثم سيتم تضمينه في علامات الموقع على الموقع.

HTML

يمكننا استخدام وظائف htmlentities أو htmlspecialchars لفیلتر کردن HTML، وتحويل الحروف الخاصة إلى 'نصوص HTML' المميزة.

تنسيق htmlentities جميع الحروف الخاصة التي تحتوي على 'نصوص HTML' المميزة، مثل رموز العملات مثل اليورو والجنيه الإسترليني، ورموز حقوق النسخ، وغيرها، بينما تنسيق htmlspecialchars فقط بعض الحروف الخاصة، مثل & " ' < >

هذه الوظائف غير ذكية، لأنها لا تنسيق الحروف الموجودة في النص بشكل افتراضي

$str='<a href="test.html" rel="external nofollow" >\'صفحة اختبار\'</a><script>alert(213)</script>'; 
// لم يتم تنسيق الحرف الموجود في النص
echo $str;
echo "<hr/>".PHP_EOL;
echo htmlentities($str);
echo "<hr/>".PHP_EOL;
echo htmlspecialchars($str);

يجب تعيين المعامل الثاني ENT_QUOTES، يمكنك الرجوع إلى دليل PHP للحصول على التفاصيل

echo htmlentities($str,ENT_QUOTES,'UTF-8'); // تنسيق النصوص بالحروف العربية
echo "<hr/>".PHP_EOL;
echo htmlspecialchars($str,ENT_QUOTES,'UTF-8');//سيتم تشويش الأوبريتات

لا يمكن تمييز htmlentities وhtmlspecialchars في الأمثلة أعلاه، لذا سنستخدم بعض الأحرف الخاصة مثل اليورو وما إلى ذلك. سيقوم htmlentities بتشويش هذه الأحرف، بينما لن يقوم htmlspecialchars بذلك.

echo htmlentities(' <>"').PHP_EOL;
echo "<hr/>".PHP_EOL;
echo htmlspecialchars(' <>"').PHP_EOL; // لم يتم التشويش

الخلاصة:عند تقديم طلبات نموذج النموذج بشكل عام، يمكن استخدام strip_tags لاستبعاد علامات HTML، وإذا كانت تتعلق بمحرر النصوص الغني، يمكن استخدام htmlspecialchars لتحديد البيانات المقدمة للتحقق.

للمزيد من المعلومات المتعلقة بPHP، يمكن للقراء المهتمين التحقق من مواضيع هذا الموقع: 'تدريب الأمان في تصميم برامج PHP'، 'تدريب تقنيات التمرير الناعم في PHP'، 'تدريب تلخيص استخدام الأوبريتات في PHP'، 'تدريب تقنيات البرمجة الشبكية في PHP'، 'تدريب تعلم اللغة الأساسية في PHP'، 'تدريب تصميم برامج PHP من منظور التوجهات'، 'تدريب تلخيص استخدام الأوبريتات في PHP'، 'تدريب تعلم العمليات الأساسية في قاعدة بيانات MySQL'، وتلخيص تقنيات التمرير الناعم في قاعدة بيانات PHP' و 'تلخيص تقنيات التمرير الناعم في قاعدة بيانات PHP'.

نتمنى أن يكون هذا المقال قد ساعدكم في تصميم برامج PHP.

بيان: محتويات هذا المقال تم جمعها من الإنترنت، وتحتفظ بالحقوق لصاحبها، تم جمع المحتويات من قبل المستخدمين عبر الإنترنت وتم تحميلها بشكل تلقائي، لا يمتلك هذا الموقع حقوق الملكية، لم يتم تعديل المحتويات بشكل يدوي، ولا يتحمل الموقع أي مسؤولية قانونية مرتبطة بذلك. إذا لاحظت محتويات تتضمن حقوق النسخ محتملة، فلا تتردد في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' بـ '@') لتقديم الشكوى، وتقديم الدليل المتعلق، وسيتم حذف المحتويات المزعومة لحقوق النسخ فور التحقق منها.

تحب أن تعرف