شرح صفوف ومحتوى الفقرة
الأداة الأساسية للوقاية من XSS في قوالب PHP هي الدالة htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8") التي تحول الرموز الخمسة الحساسة في HTML إلى كيانات نصية آمنة.
- تحول الرمز
&إلى&، و<إلى<، و>إلى>، وعلامتي التنصيص المزدوجة والمفردة إلى كيانات آمنة. - أصبحت الأعلام
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";