الكيان تهريب: طريقة لكتابة محرف كان سيُقرأ ترميزًا لولا ذلك. < تنتج علامة أصغر من دون أن تبدأ وسمًا.
القائمة المنشورة الهائلة أثر تاريخي. معظمها يعود إلى ما قبل أن يصير UTF-8 عامًّا، حين كانت كتابة محرف مباشرةً مقامرة على الترميز.
الخمسة
< و> — القوسان الزاويان. فالعلامة < المجرّدة تبدأ وسمًا، فـif x < 5 مكتوبةً مباشرةً تبتلع بقيّة الجملة داخل عنصر يحاول المتصفّح بعدها أن يفهمه.
& — علامة العطف، لأنها تبدأ كيانًا. فبدونها تتحوّل Q&A وR&D أحيانًا إلى شيء غير مقصود، والروابط التي تحوي ©= معروفة بإنتاج © في وسط الرابط.
" و' — علامتا الاقتباس، وهما تهمّان داخل قيمة سمة. فسمة title تحوي علامة اقتباس مزدوجة غير مهرَّبة تُنهي السمة مبكرًا، ويصير كل ما بعدها ترميزًا.
تلك هي القائمة الكاملة للمحارف التي تكسر HTML. كل ما عداها اختياري.
ما لم تعد تحتاجه
الحروف ذات الحركات، ورموز العملات، والأسهم، والرموز الرياضية، والحروف اليونانية، والإيموجي. اكتبها مباشرةً وأعلن UTF-8 في أعلى المستند.
é أصعب قراءةً من é، وأصعب بحثًا، وليست أصحّ. كتابة → بدل → تجعل الشفرة أسوأ مقابل لا شيء.
الاستثناء مسار غير مضمون فعلًا — قالب بريد، أو نظام يشوّه الترميزات، أو ملف لا تتحكّم في ترميز محارفه. هناك تبقى الكيانات الصورة الآمنة، والسبب هو المسار لا HTML.
اثنان ما زالا يستحقّان الكتابة عمدًا
— مسافة لا تنكسر إلى سطر جديد. نافعة بين رقم ووحدته، أو قبل كلمة قصيرة أخيرة تفاديًا لسطر يتيم. تستحق أن تُكتب عمدًا، وتستحق ألّا تدع محرّرًا يدرجها نيابةً عنك، فهي أشيع محرف غير مرئي ينتهي في النص ويكسر البحث.
­ — شرطة لَيّنة، تعلّم أين يجوز أن تنكسر كلمة طويلة. نادرًا ما تُحتاج ونافعة فعلًا في أعمدة الألمانية الضيّقة.
التهريب والأمان
تهريب تلك المحارف الخمسة هو سبب أهمّية الكيانات وراء الإخراج الطباعي: فنصّ من مستخدم، مُدرَج في صفحة بلا تهريب، وسمُ سكربت ينتظر أن يعمل.
الجزء الجدير بالفهم أن التهريب الصحيح يتوقّف على أين يحطّ النص. داخل متن HTML، هرّب الخمسة. داخل سمة، هرّبها واضبط السمة بين علامتَي اقتباس دائمًا. داخل كتلة سكربت، تهريب الكيانات هو الأداة الخاطئة تمامًا — فتهريب سلاسل JavaScript قاعدة أخرى. داخل رابط، هو ترميز النسبة المئوية. داخل كتلة أنماط، شيء آخر من جديد.
دالّة تهريب واحدة تُطبَّق في كل مكان طريق معروف إلى ثغرة. استعمل التهريب الواعي بالسياق الذي يوفّره محرّك قوالبك، وهو ما تفعله الأطر الحديثة افتراضيًّا، واحفظ التهريب اليدوي للحالات التي لا تراها.
فكّ الترميز
النص المستخرَج من HTML كثيرًا ما يصل والكيانات سليمة فيه — Q&A بدل Q&A — وأحيانًا مرمَّزًا مرّتين، حيث تعني &amp; أن التهريب جرى مرّتين.
فكّ الترميز يتعامل مع الكيانات المسمّاة، والعددية مثل —، والستّ عشرية مثل — — ثلاث صور للمحرف نفسه، كلها متداولة.
الخلاصة
خمسة محارف تكسر HTML وكل ما عداها اختياري. أعلن UTF-8 واكتب البقيّة مباشرةً. هرّب عند إدراج نصّ غير موثوق، وهرّب للسياق الذي يحطّ فيه بدل اللجوء إلى دالّة واحدة في كل مكان.