مرمّز كيانات HTML

تعمل في المتصفح الترميز

حوّل النص إلى ناتج آمن في HTML باستخدام الكيانات المسمّاة أو الرقمية، مع خيار ترميز جميع الأحرف غير ASCII.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

ما هي كيانات HTML؟

كيانات HTML تسلسلات تهريب تتيح للصفحة إظهار محارف كان HTML سيفسّرها كترميز: ‎&lt; للرمز < و‎&amp; للرمز & و‎&quot; لعلامة الاقتباس المزدوجة، إضافة إلى مراجع مسماة ورقمية لأي محرف يونيكود (‎&copy; و‎&#169; و‎&#x00A9;). ترميز النص غير الموثوق بهذه الطريقة قبل وضعه في الصفحة هو ما يمنعه من التحول إلى سكربت.

ملاحظة أمنية: النص الذي يصل إلى الصفحة دون ترميز هو أصل هجمات XSS. رمّز عند الإخراج وبحسب السياق الذي يقع فيه (جسم HTML أو سمة أو JavaScript أو URL) — فكّ ترميز مدخلات المستخدم «لتنظيفها» ليس دفاعاً.

ترميز الكيانات يجعل النص آمناً في محتوى العناصر وقيم السمات المحاطة بعلامات اقتباس؛ أما القيمة داخل عنوان URL أو JavaScript أو CSS فتحتاج إلى ترميز خاص بسياقها.
<p>الجزء 1:Tom &amp; Jerry</p>
<input value="الجزء 2:Say &quot;hi&quot;">
<a href="/search?q=الجزء 3:tom%26jerry">
<script>let q = "الجزء 4:…";</script>
<style>p { color: الجزء 5:… }</style>
  1. 1محتوى العنصرناتج الأداة يكفي هنا.نجاح
  2. 2قيمة سمة محاطة بعلامات اقتباسيكفي ما دام خيار «ترميز علامات التنصيص» مفعّلاً، وهو كذلك افتراضياً. ولا يشمل السمة غير المحاطة بعلامات اقتباس.نجاح
  3. 3قيمة داخل عنوان URLتحتاج إضافةً إلى ذلك إلى ترميز النسبة المئوية: tom&jerry تصبح tom%26jerry.تنبيه
  4. 4داخل JavaScriptلا يفكّ المتصفح الكيانات هنا، لذا تحتاج القيمة إلى تهريب خاص بـ JavaScript بدلاً من ذلك.تنبيه
  5. 5داخل CSSلا يفكّ المتصفح الكيانات هنا، لذا تحتاج القيمة إلى تهريب خاص بـ CSS بدلاً من ذلك.تنبيه

مثال مبسّط: سطر واحد لكل سياق إخراج. الموضعان 1 و2 يعرضان ناتج هذه الأداة بإعداداتها الافتراضية.

كيفية استخدام مرمّز كيانات HTML

  1. الصق النص الذي سيُدرج في HTML.
  2. أبقِ خيار علامات الاقتباس مفعّلاً لقيم السمات.
  3. اختر نمط الكيانات الذي يتوقعه الهدف.
  4. انسخ الناتج المُهرَّب.

مزايا مرمّز كيانات HTML

  • يهرّب الأحرف & < > " ' لمنع XSS في محتوى العناصر وقيم السمات المحاطة بعلامات اقتباس
  • أنماط الكيانات المسمّاة (&copy;) أو العشرية (&#169;) أو السداسية العشرية (&#xA9;)
  • ترميز اختياري لجميع الأحرف غير ASCII، أو لكل حرف
  • يرجع الوضع المسمّى إلى المراجع الرقمية للأحرف التي ليس لها اسم
  • ناتج فوري مع عدد الكيانات

مثال على مرمّز كيانات HTML

تأمين مدخلات المستخدم

الإدخال:

<script>alert("Tom & Jerry")</script>

النتيجة:

&lt;script&gt;alert(&quot;Tom &amp; Jerry&quot;)&lt;/script&gt;

الأسئلة الشائعة حول مرمّز كيانات HTML

ما الأحرف التي يجب تهريبها لمنع XSS؟

على الأقل & و< و> — وداخل قيم السمات — علامتا الاقتباس " و'. ترمّز الأداة الأحرف الخمسة كلها افتراضياً، بما يطابق دالة htmlspecialchars في PHP مع الخيار ENT_QUOTES.

كيانات مسمّاة أم عشرية أم سداسية عشرية؟

تُعرض الأنماط الثلاثة بالشكل نفسه في المتصفحات. الكيانات المسمّاة (&copy;) سهلة القراءة؛ أما الرقمية (&#169; أو &#xA9;) فتعمل في XML/XHTML أيضاً، حيث لا تُضمن سوى الأسماء الخمسة المعرّفة مسبقاً. ويرجع الوضع المسمّى إلى الصيغة الرقمية للأحرف التي ليس لها اسم.

متى ينبغي ترميز الأحرف غير ASCII؟

فقط عندما يُحتمل تقديم المستند دون مجموعة أحرف UTF-8، أو عندما يمرّ عبر أنظمة تُتلف Unicode. يمكن لصفحات UTF-8 الحديثة أن تحتوي على النص العربي والرموز التعبيرية والحروف ذات العلامات الصوتية مباشرةً.

هل يكفي تهريب HTML لتأمين مدخلات المستخدم؟

يجعل النص آمناً داخل محتوى العناصر وقيم السمات المحاطة بعلامات اقتباس، ولا يكفي في غيرهما. فالقيمة الموضوعة داخل عنوان URL تحتاج إضافةً إلى ذلك إلى ترميز النسبة المئوية (Percent-encoding)، وعنوان الرابط أو الصورة الذي يقدّمه المستخدم يجب حصره في http أو https، إذ لا يمنع أي ترميزٍ عنوانَ ⁦javascript:⁩. أما داخل عنصر ⁦<script>⁩ أو ⁦<style>⁩ فلا يفكّ المتصفح الكيانات أصلاً، لذا تحتاج القيمة هناك إلى تهريب خاص بـ JavaScript أو CSS بدلاً من ذلك.

ملاحظات تقنية

يستبدل الترميز الأحرف بمراجع أحرف كما يعرّفها معيار HTML Living Standard. تُكتب أحرف التحكم في النطاق U+0080–U+009F رقمياً دائماً لأنها لا تملك شكلاً قابلاً للطباعة. ويغطي جدول الأسماء المدمج نحو 250 كياناً من الكيانات الشائعة الاستخدام؛ وما عداها يُخرج كمرجع رقمي تفهمه جميع المتصفحات.

المراجع

  • HTML Living StandardWHATWGلغة HTML، بما فيها مراجع المحارف المسماة (الكيانات) وقواعد التحليل التي تتبعها المتصفحات.
  • Cross Site Scripting (XSS)OWASP Foundationما هو هجوم XSS وأنواعه المنعكس والمخزّن وعبر DOM وكيف يمنعه الترميز.