مُرمّز/مُفكّك HTML / Entity
يرمّز النص إلى كيانات HTML (مثل < → <) أو يفكّ ترميز الكيانات. تتم العملية بالكامل في متصفحك؛ ولا يُرسَل النص إلى الخادم.
آخر تحديث:
المخرَج
أدخل نصًا في الحقل المجاور؛ تظهر النتيجة فورًا.
متى تحتاج هذا المرمّز
عند عرض ما يكتبه المستخدمون
أسماء وتعليقات وأوصاف يكتبها الغرباء ثم تُعرض في صفحاتك: كل قيمة منها يجب أن تمر بالترميز عند الإخراج. المثال المحسوب أدناه يبيّن ما يحدث حين لا تمر.
عند نشر أمثلة شيفرة في مقال
لعرض وسم <script> كنصّ في صفحة، لا بدّ من ترميزه؛ وإلا عدّه المتصفح شيفرة تُنفَّذ لا مثالًا يُقرأ. كتل الشيفرة في المدونات أكثر زبائن هذه الأداة.
عند إصلاح محتوى ظهرت فيه & مرئية
سلاسل مثل &amp; في صفحة حية علامة ترميز مزدوج في طبقة ما. الصق القيمة هنا وعُدّ مرات الفكّ حتى تعود طبيعية؛ العدد يدلّك على الطبقة المذنبة.
مثال محسوب: وسم قصد صاحبه أن يكون نصًّا
كتب مستخدم في وصف متجره: عرض <b>خاص</b> هذا الأسبوع، قاصدًا النص الحرفي بأقواسه.
- من دون ترميز يفسّر المتصفح <b> وسمًا حقيقيًا: تظهر كلمة خاص بخط عريض ويختفي الوسمان من النص.
- ما كتبه المستخدم تغيّر شكله إذن دون علمه؛ ولو كتب وسمًا أخطر لتغيّر سلوك الصفحة لا شكلها فقط.
- رمّز النص في هذه الأداة: يصبح عرض <b>خاص</b> هذا الأسبوع.
- المتصفح يعرض الصيغة المرمّزة كما كُتبت حرفًا بحرف، بأقواسها الظاهرة.
- المحارف الحاسمة خمسة: & و< و> و" و'؛ وترميز & يجب أن يسبق البقية وإلا تضاعف الترميز.
الفرق بين نصٍّ يُعرض ووسمٍ يُنفَّذ قرار يحسمه الترميز وحده. وفي النص العربي المختلط بوسوم لاتينية يزداد الخطأ خفاءً، لأن الوسم وسط سطر من اليمين إلى اليسار يقفز بصريًا ويصعب تمييزه عند المراجعة. القاعدة واحدة لا استثناء فيها: كل ما جاء من خارج نظامك يُرمَّز عند عرضه.
أربعة أخطاء متكررة
الترميز عند الإدخال بدل الإخراج
القيمة «المنظّفة» عند الحفظ ستُعرض بعد سنين في سياق آخر لم يخطر ببال أحد. الحدّ الأمني هو لحظة الإخراج: رمّز حسب السياق الذي تُعرض فيه القيمة، ولا تثق بحالتها في قاعدة البيانات.
ترك قيمة السمة بلا علامتَي اقتباس
في سمة غير محصورة باقتباس تبدأ المسافةُ سمةً جديدة، والترميز لا ينقذ هنا لأن المسافة ليست محرفًا واجب الترميز. احصر قيم السمات بين علامتَي اقتباس دائمًا، ورمّز علامة الاقتباس نفسها.
فك الترميز مرتين
فكّ &lt; مرة يعطي <، وفكّه ثانية يعطي < حقيقية: قيمة مخزنة بترميز مزدوج ثم مفكوكة مرتين قد تبني وسمًا من حيث لا تحتسب. افكك مرة واحدة بالضبط، وأصلح مصدر الازدواج.
حماية الروابط بترميز HTML
قيمة تدخل href لا يكفيها ترميز entity: مخطط javascript: يعمل دون أي قوس أو اقتباس. للروابط قواعدها الخاصة: تحقق من المخطط ثم طبّق percent-encoding؛ الدفاعان لا يتبادلان المواقع.
أدوات تُستعمل إلى جانبها
- مُرمّز/مُفكّك Base64 رمّز النص إلى Base64 أو فُكّ ترميزه. متغيّر قياسي وآمن للروابط (base64url)؛ متوافق مع UTF-8، في المتصفح.
- عارض HTML الصق شيفرة HTML وعايِنها حيًّا فورًا. في إطار معزول وآمن (sandbox)؛ والـ scripts معطّلة للأمان.
- محلّل JWT حلّل قسمَي الترويسة والحمولة في JSON Web Token، وشاهد المطالبات القياسية ومدة الصلاحية. لا يغادر الـ token المتصفح.
- حاسبة ميزانية موارد Kubernetes احسب عدد العُقد التي تحتاجها وكفاءة التعبئة والتكلفة الشهرية التقديرية بناءً على طلبات الحاوية وحجم العُقدة.
- مولّد UUID ولّد UUID v4 آمنًا تشفيريًا وv7 المرتّب زمنيًا. توليد دفعي وخيارات تنسيق.
الأسئلة الشائعة
ما الفرق بين ترميز HTML وترميز URL؟
يحوّل ترميز HTML المحارف ذات المعنى في مستند HTML (< > & " ') إلى كيانات لمنع المتصفح من اعتبار النص وسومًا. أمّا ترميز URL (percent-encoding) فيحوّل المحارف غير الآمنة في الرابط إلى صيغة %XX. هما لسياقين مختلفين ولا يتبادلان.
أيّ المحارف يجب ترميزها حتمًا في HTML؟
خمسة محارف كحدّ أدنى: & (&) و< (<) و> (>) و" (") و' ('). يجب ترميز & أولًا وإلّا فسدت بقية الكيانات. وترميز محرف الاقتباس حاسم حين تكون قيم السمات داخل علامات اقتباس.
لماذا يُستخدَم ' بدل '؟
الكيان المسمّى ' معرّف في HTML5 لكنه لم يكن موجودًا في HTML4 وبعض المتصفحات القديمة. أمّا المرجع الرقمي ' فيعمل في كل الإصدارات؛ لذا هو الخيار الأكثر أمانًا ونقلًا لعلامة الاقتباس المفردة. وهذه الأداة تُنتج '.
كيف يُرمَّز HTML في .NET؟
تعمل System.Net.WebUtility.HtmlEncode(string) دون تبعيات؛ وفي مشاريع الويب يمكن استخدام System.Web.HttpUtility.HtmlEncode. وفي Razor تُرمّز تعابير @المتغير المخرَج تلقائيًا — وتحتاج @Html.Raw عمدًا لطباعة HTML خام.
هل تمنع هذه الأداة XSS تمامًا؟
لا وحدها. ترميز HTML هو الدفاع الصحيح عند طباعة البيانات في جسم HTML؛ لكن سياقات السمات وJavaScript وCSS والروابط تتطلّب قواعد هروب مختلفة. النهج الصحيح: ترميز مناسب للسياق + Content Security Policy + التحقّق من المدخلات. وتفيدك هذه الأداة في رؤية الترميز والتحقّق منه.