انتقل إلى محتوى الدرس

Escaping HTML with htmlspecialchars ترميز المخرجات النصية بـ htmlspecialchars

اقضِ على ثغرات حقن السكريبتات العابرة للمواقع XSS في PHP 8 باستخدام htmlspecialchars وفحص الروابط ورؤوس الحماية القياسية.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

الأداة الأساسية للوقاية من XSS في قوالب PHP هي الدالة htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8") التي تحول الرموز الخمسة الحساسة في HTML إلى كيانات نصية آمنة.

  • تحول الرمز & إلى &amp;، و< إلى &lt;، و> إلى &gt;، وعلامتي التنصيص المزدوجة والمفردة إلى كيانات آمنة.
  • أصبحت الأعلام ENT_QUOTES | ENT_SUBSTITUTE والترميز "UTF-8" افتراضية منذ PHP 8.1+، ويُفضل تمريرها صراحة لوضوح الكود.
  • عرّف دالة مساعدة مختصرة e(string $val): string لتسهيل ترميز كل متغير يُطبع في القوالب.

تتعامل الدالة المساعدة e() بأمان مع القيم الفارغة null، وترمّز علامات التنصيص المزدوجة والمفردة والأقواس الزاوية.

PHP
<?php
function e(?string $value): string {
    return htmlspecialchars(
        (string) $value,
        ENT_QUOTES | ENT_SUBSTITUTE,
        'UTF-8'
    );
}

$bio = 'O\'Reilly & "Friends" <Admin>';
echo e($bio) . "\n";