ما هو مشفّر/فكّ تشفير كيانات HTML؟

مشفِّر/فكّ مشفِّر كيانات HTML يحوّل الأحرف الخاصة مثل < و> و& والاقتباسات إلى ما يعادلها من كيانات HTML (والعكس). يمنع ذلك ثغرات XSS عند تضمين محتوى المستخدم في HTML ويُصلح مشاكل عرض الأحرف الخاصة.

يحوّل المُرمِّز أحرفًا مثل <، >، &، "، ' وأي نقطة كود يونيكود إلى كيانات مسماة (&amp;, &lt;) أو مراجع عشرية (&#38;) أو مراجع ست عشرية (&#x26;). يتيح محدد النطاق ترميز الأحرف المحجوزة الخمسة فقط، أو كل الأحرف الخاصة، أو كل حرف غير ASCII. يعكس فك الترميز أيًا من الصيغ الثلاث. مفيد لتعقيم مدخلات المستخدم قبل إخراجها كـ HTML أو لاستعادة نصوص من بريد إلكتروني مُصدَّر بصيغة HTML.

كيفية الاستخدام

  1. الخطوة 1 — الصق نصًا يحتوي على أحرف خاصة أو كيانات HTML.
  2. الخطوة 2 — اختر "ترميز" لتحويل الأحرف إلى كيانات، أو "فك الترميز" لتحويل الكيانات مجددًا إلى أحرف.
  3. الخطوة 3 — اختر صيغة (مسماة، عشرية، أو ست عشرية) ونطاقًا للتحكم في مدى الترميز.

متى تستخدم

  • لصق أمثلة برمجية في نظام إدارة محتوى دون أن تختفي < و> كأنها وسوم.
  • تنظيف نصّ مستخرج من بريد HTML أو من كشط مواقع ما تزال فيه &mdash; و&nbsp;.
  • تهريب مدخلات المستخدم قبل إدراجها في قالب الخادم لمنع هجمات XSS.

النتيجة

تحتاج إلى عرض مقتطف الكود <div class="hero"> داخل فقرة HTML. شفّره إلى &lt;div class=&quot;hero&quot;&gt; حتى يُصيّر جهازك النص بدلًا من تفسيره كترميز.

الأسئلة الشائعة

ما الفرق بين الكيانات المُسمّاة والكيانات الرقمية؟
المُسمّاة اختصارات قابلة للقراءة (&copy; للحرف ©). الرقمية تستخدم نقطة يونيكود (&#169; أو &#xA9;). الرقمية تغطّي أيّ حرف يونيكود؛ المُسمّاة تقتصر على نحو 250 حرفاً تحدّدها مواصفة HTML5.
هل يجب ترميز كلّ حرف خاص أم بعضها فقط؟
في متن HTML تحتاج فقط لترميز & < > وعلامة الاقتباس المستخدمة في قيم السمات. في سياقات JavaScript أو URL تختلف القواعد. يقدم محدد النطاق ثلاث خيارات: المحجوزة فقط للأحرف الخمسة الحرجة لـ XSS، كل الخاصة للطباعة بالإضافة إلى المحجوزة، أو كل غير ASCII لأوسع تغطية.
هل يُفسد الترميز عمليات النسخ واللصق أو قارئات الشاشة؟
لا. المتصفّح يفكّ الكيانات قبل العرض، فيرى المستخدم وينسخ الحرف الأصلي. قارئات الشاشة كذلك تستقبل النصّ بعد فكّ ترميزه. الكيانات صيغة نقل للترميز فقط، ليست شكل العرض النهائي.
هل يكفي ترميز كيانات HTML وحده لإيقاف هجمات XSS؟
للمحتوى داخل متن HTML نعم. في السمات يجب تطويق القيمة بعلامات تنصيص وترميز علامة التنصيص نفسها. سياقات JavaScript وCSS وURL لكلّ منها قواعد تهريب خاصة، الترميز طبقة أولى لا الحلّ كلّه.
لِمَ بعض الكيانات تبدأ بـ &#x والأخرى بـ &# فقط؟
&#x تتبعها نقطة سداسية، و&# تتبعها عشرية. كلاهما يشيران إلى الحرف نفسه؛ &#xA9; و&#169; كلاهما يطبع ©. الصيغة السداسية تتوافق مع تدوين U+ في جداول يونيكود وتكون أقصر للنقاط العليا.

أدوات ذات صلة