ToolHub
View All Posts

دليل HTML Entities الكامل

كيانات HTML هي واحدة من أكثر جوانب تطوير الويب أساسية لكنها غالبًا ما تُساء فهمها. إنها الآلية التي تمكن المتصفحات من عرض الأحرف التي قد تُفسر كترميز HTML، وتلعب دورًا حاسمًا في أمان الويب. سواء كنت ترمز أحرفًا خاصة لمنع هجمات XSS، أو تعرض رموزًا رياضية، أو تضمن عرض المحتوى بشكل صحيح عبر ترميزات مختلفة، فإن فهم كيانات HTML ضروري لكل مطور ويب.

ما هي HTML Entities؟

كيانات HTML هي تسلسلات أحرف تمثل حرفًا واحدًا في HTML. تبدأ الكيانات بعلامة العطف (&) وتنتهي بفاصلة منقوطة (;). عندما يواجه المتصفح كيانًا، يستبدله بالحرف المقابل أثناء العرض. تتيح لك هذه الآلية تضمين أحرف في HTML قد تكون مستحيلة أو إشكالية.

<) تبدأ وسمًا، وعلامة أكبر من (>) تنهي وسمًا، وعلامة العطف (&) تبدأ مرجع كيان. إذا كنت تريد عرض هذه الأحرف كمحتوى مرئي بدلاً من ترميز، يجب ترميزها ككيانات.

المبدأ الأساسي: أي حرف له معنى خاص في قواعد HTML يجب ترميزه ككيان عند ظهوره كمحتوى. هذا ليس اختياريًا — إنه مطلب لـ HTML صالح.

HTML Entities الشائعة

بينما تعرف HTML أكثر من 2,000 كيان مسمى، يتم استخدام عدد قليل منها بشكل متكرر في تطوير الويب اليومي. هذه هي الكيانات التي ستواجهها وتستخدمها أكثر من غيرها:

خمس كيانات أساسية

الحرفالكيان المسمىالكيان العشريالكيان الست عشريالاستخدام
&&&&يجب ترميزه دائمًا لتجنب الغموض مع مراجع الكيانات
<<<<يجب ترميزه لمنع فتح وسوم HTML
>>>>يجب ترميزه لمنع إغلاق وسوم HTML
""""يجب ترميزه داخل قيم السمات ذات الاقتباسات المزدوجة
'''يجب ترميزه داخل قيم السمات ذات الاقتباسات المفردة 

كيانات الرموز الشائعة

الحرفالكيان المسمىالوصف
مسافة غير منفصلة (تمنع كسر السطر)©رمز حقوق النشر
®رمز العلامة التجارية المسجلة
رمز العلامة التجاريةشرطة (em dash)
شبه شرطة (en dash، للنطاقات)«
علامة اقتباس مزدوجة يسرى»علامة اقتباس مزدوجة يمنى
رمز النقطة
علامة حذف أفقية (ثلاث نقاط)&laquo; Left-pointing double angle quotation mark
»&raquo; Right-pointing double angle quotation mark
&bull; Bullet character
&hellip; Horizontal ellipsis (three dots)

الكيانات الرقمية مقابل الكيانات المسماة

تأتي كيانات HTML في شكلين: مسماة ورقمية. فهم الفرق يساعدك في اختيار الكيان الصحيح لكل موقف.

الكيانات المسماة

تستخدم الكيانات المسماة كلمات قابلة للقراءة البشرية لتعريف الأحرف. على سبيل المثال، < يمثل علامة أقل من، و© يمثل رمز حقوق النشر. الكيانات المسماة أكثر قابلية للقراءة والتذكر، مما يجعل كود HTML المصدري أكثر قابلية للصيانة. ومع ذلك، الكيانات المسماة موجودة فقط لمجموعة محدودة من الأحرف — حوالي 2,000، بينما يوجد أكثر من 140,000 حرف في Unicode.

الكيانات الرقمية

تشير الكيانات الرقمية إلى الأحرف عبر نقاط ترميز Unicode. تأتي في شكلين: عشري وست عشري. الكيانات الرقمية العشرية تستخدم التنسيق &#NNN; حيث NNN هو نقطة الترميز العشرية. الكيانات الست عشرية تستخدم التنسيق &#xHHH; حيث HHH هو نقطة الترميز الست عشرية. على سبيل المثال، يمكن كتابة رمز حقوق النشر كـ © (عشري) أو © (ست عشري).

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

متى تستخدم أيهما

متى تستخدم HTML Entities

معرفة متى تستخدم الكيانات مهمة بقدر معرفة كيفية استخدامها. إليك السيناريوهات الرئيسية التي تكون فيها الكيانات ضرورية أو مفيدة:

1. عرض الأحرف المحجوزة

< عارية، سيحاول المتصفح تحليلها كبداية لوسم HTML، مما قد يكسر تخطيط صفحتك أو ينشئ ثغرة أمنية.

2. منع غموض علامة العطف (&)

تُفسر علامة العطف متبوعة بحروف وفاصلة منقوطة دائمًا كمرجع كيان. إذا كان المحتوى الخاص بك يحتوي على علامة عطف ليست جزءًا من كيان (مثل 'Tom & Jerry')، يجب ترميزها كـ &. علامات العطف غير المرمزة متبوعة بنص يطابق اسم كيان سيتم فك ترميزها بشكل خاطئ.

3. تضمين أحرف غير موجودة على لوحة المفاتيح

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

4. المسافة غير المنفصلة

ينشئ الكيان   مسافة غير منفصلة، مما يمنع المتصفح من كسر السطر في ذلك الموقع. هذا ضروري للحفاظ على الكلمات المرتبطة معًا على نفس السطر، مثل '10 kg' أو 'الفصل 3' أو أسماء العلامات التجارية التي لا يجب أن تنقسم عبر الأسطر.

الآثار الأمنية: الحماية من XSS

ترميز كيانات HTML هو أحد أهم خطوط الدفاع ضد هجمات XSS. تحدث XSS عندما يتمكن المهاجم من حقن كود قابل للتنفيذ في صفحة ويب يشاهدها مستخدمون آخرون. يمنع ترميز الكيانات هذا عن طريق تحويل الأحرف الخطيرة إلى مكافئاتها الآمنة ككيانات.

كيف يمنع ترميز الكيانات هجمات XSS

وعرضت الصفحة هذا بدون ترميز، سينفذ المتصفح السكريبت. ومع ذلك، إذا تم ترميز المخرجات ككيانات، تصبح <script>alert('xss')</script>، ويعرضها المتصفح كنص حرفي بدلاً من تنفيذ الكود.

قواعد الترميز الخاصة بالسياق

يعمل ترميز الكيانات في سياقات محتوى HTML والسمات، لكن السياقات المختلفة تتطلب استراتيجيات ترميز مختلفة: