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

حوّل المحارف إلى كيانات HTML والعكس، من الخمسة المهمّة إلى التهريب العددي الكامل.

تتم المعالجة على جهازك — بلا رفع

termiva entities --encode
0 حرفًا
الاتجاه
كم تهرّب

علامة العطف تُهرَّب أولًا. وفعل ذلك بأي ترتيب آخر يرمّز الكيانات التي أنتجتها للتوّ مرّة ثانية، فيحوّل < إلى < — ولهذا يظهر النص أحيانًا على صفحة والوسوم بادية فيه.

الأدنى هو ما تريده في الغالب الأعمّ. فالصفحات الحديثة تُقدَّم بترميز UTF-8، فالعربية والحركات والإيموجي لا تحتاج تهريبًا إطلاقًا — وتهريبها يكبّر الملف ويجعل تحريره أصعب بكثير.

0 حرفًا
الاتجاه الترميزداخل 0 حرفًاخارج 0 حرفًالا شيء مرفوع

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

  1. اختر الترميز أو فكّه.
  2. الصق نصّك.
  3. انسخ الناتج.

كيف يعمل

الكيان طريقة لكتابة محرف كان سيُقرأ ترميزًا لولا ذلك. فـ&lt; تضع < حرفية على الصفحة بدل أن تبدأ وسمًا. وله ثلاث صور: مسمّاة (&amp;)، وعشرية (&#38;)، وستّ عشرية (&#x26;)، وهي تعني الشيء نفسه بالضبط.

وخمسة محارف فقط تحتاج التهريب فعلًا في HTML الحديث: & و< و>، ونوعا علامات الاقتباس داخل قيم السمات. وكل ما عداها — العربية والحركات والإيموجي والشرطات — يُقدَّم على أتمّ وجه بترميز UTF-8، وتهريبه يكبّر الملف ويجعل تحريره أصعب بكثير.

والترتيب يهمّ، والخطأ فيه هو العلّة الكلاسيكية. فعلامة العطف يجب تهريبها أولًا. هرّب < أولًا فتُهرَّب & التي في &lt; التي أنتجتها للتوّ في التمريرة الثانية، فتعطي &amp;lt; — وهي تُعرض على الصفحة نصًّا حرفيًا هو &lt;. وذلك ما حدث كلما رأيت رموز كيانات خامّة في عنوان على موقع حيّ.

وفكّ الترميز يقبل الصور الثلاث ويترك ما لا يعرفه كما هو بالضبط، بدل إسقاطه في صمت. فعلامة & شاردة في نثر ليست كيانًا مكسورًا ولا ينبغي مسّها.

مثال عملي

الحالة التي وُجد هذا لها فعلًا: عرض شفرة على صفحة. تريد لزائر أن يقرأ <a href="?a=1&b=2"> بدل أن يعرض المتصفّح رابطًا. الصقها، ورمّزها بالإعداد الأدنى، وضع الناتج داخل <pre> عندك. وكل موقع توثيق يفعل هذا، وفعله يدويًا هو حيث يتسلّل التهريب الناقص.

والملاحظة الأمنية، منصوصًا عليها بدقّة. التهريب هو ما يمنع مدخل المستخدم من أن يصير ترميزًا — فتعليق يحوي <script> يصير خاملًا بعد تهريبه. لكن هذا ليس دفاعًا عن XSS تستطيع الاعتماد عليه بلصق نصّ عبر صفحة ويب. هرّب عند نقطة الإخراج، في محرّك القوالب عندك، تلقائيًا، لكل قيمة. فالتمريرة اليدوية عبر أي أداة تغطّي السلسلة الواحدة التي تذكّرتها.

وقيم السمات تحتاج تهريب علامات اقتباسها أيضًا. title="5" wide" تنتهي عند علامة الاقتباس الثانية، ويصير الباقي سمات شاردة. وهذه هي الآلية وراء وصف تعريفي يتوقّف على نحو غامض عند فاصلة عليا — ومولّد وسوم الميتا يهرّب تلقائيًا لذلك السبب.

ومتى تستعمل الإعداد العددي. نادرًا جدًّا — لكن إن كان ملف قد يُقدَّم بلا إعلان ترميز، أو ذاهبًا إلى نظام يشوّه كل ما فوق ASCII، فتهريب كل محرف غير ASCII عدديًا ينجو منه. حمّل عيّنة فكّ الترميز: &#1605;&#1585;&#1581;&#1576;&#1575; هي مرحبا، خمسة حروف عربية مكتوبة خمسَ نقاط ترميز عشرية.

وإن كان ما تهرّبه رابطًا لا ترميزًا، فمرمّز الروابط هو الأداة الصحيحة — فترميز النسبة المئوية والكيانات غير متبادلين.

أسئلة

كيف أهرّب المحارف الخاصّة في HTML؟

رمّزها فتصير الخمسة التي تحمل معنًى كياناتٍ. وفكّ الترميز يفعل العكس، فتستطيع فكّ نصّ وصل و&lt; ظاهرة فيه على الصفحة.

أي محارف يجب أن أهرّب؟

في محتوى النص، & و< و>. وداخل قيم السمات، وأيضًا علامة الاقتباس التي استعملتها. وكل ما عداها مقبول بترميز UTF-8.

هل أهرّب العربية أو الحركات أو الإيموجي؟

لا. فأي صفحة تُقدَّم بترميز UTF-8 تتعامل معها مباشرةً. وتهريبها يكبّر الملف ويجعل قراءته أو تحريره أصعب بكثير.

لماذا أرى ‎&amp;lt;‎ على صفحتي؟

هُرِّب النص مرّتين — فعلامة العطف في الكيان الأول هُرِّبت في التمريرة الثانية. هرّب علامة العطف أولًا، ومرة واحدة فقط.

هل التهريب كافٍ لمنع XSS؟

التهريب عند الإخراج هو الدفاع الجوهري، لكنه يجب أن يحدث تلقائيًا في قوالبك لكل قيمة. وتمرير سلسلة واحدة عبر صفحة ويب ليس استراتيجية أمان.

فيمَ تُستعمل ‎&nbsp;‎؟

مسافة لا تنكسر إلى سطر جديد — نافعة بين رقم ووحدته. أما استعمالها للإزاحة أو التباعد فحيلة تخطيط يفعلها CSS أفضل.

ما الفرق عن ترميز الروابط؟

الكيانات لـHTML؛ وترميز النسبة المئوية للروابط. والرابط داخل سمة HTML قد يحتاج الاثنين، مطبَّقين بذلك الترتيب.

هل يتعامل فكّ الترميز مع الكيانات الستّ عشرية؟

نعم — فالصور المسمّاة والعشرية والستّ عشرية كلها تُفكّ. وما لا يُعرَف يُترك بلا مسّ لا يُزال.

هل يُرسَل نصّي إلى أي مكان؟

لا. يُحوَّل في هذه الصفحة، وذلك يهمّ حين يكون النص محتوًى غير منشور أو قالبًا فيه بيانات حقيقية.

هل مرمّز كيانات HTML مجاني على الإنترنت؟

نعم — مجاني، بلا حساب، وبلا حد يومي، وبلا علامة مائية. يعمل في متصفّحك عبر الإنترنت، ولأن المعالجة تجري على جهازك فإنه يستمر في العمل دون اتصال بعد تحميل الصفحة.

للقراءة