العربية

أدوات المطورين · محرر HTML WYSIWYG

لصق التعقيم HTML: ما يجب إزالته قبل أن يصل إلى CMS أو بريدك الإلكتروني

· كيف يعمل

أتش تي أم أل حماية تنظيف النص

يُسمح ببنية النص التي تمر عبر البوابة بينما يتم رفض أنماط البرامج النصية والروابط غير الآمنة
الرسم التوضيحي المتجه الأصلي ToolAcre

يشرح ما تفعله أداة التطهير HTML، بدءًا من العلامات والسمات المدرجة في القائمة المسموح بها وحتى النصوص البرمجية التي تمت إزالتها وعناوين URL المحايدة، وكيف يؤدي فحص العلامات أولاً إلى تسهيل كتابة قواعد أداة التطهير.

يتم فتح المقتطف الملصق الذي يحمل نقرة واحدة مع وجود خطر مخفي في إدخال النص المنسق

يمكن أن يؤدي المرساة الملصقة إلى إخفاء نقرة بجانب وجهة بريئة. ToolAcre يقوم بتصغير كل اسم سمة ويحتفظ فقط بالسمات المدرجة بشكل صريح للعنصر المقبول، لذلك يختفي onclick حتى عندما يتم تغيير غلافه. يحدد تقرير الإزالة معالج الحدث بدلاً من تقديم المصدر الذي لم يتغير بصمت.

يعمل هذا الحد قبل إدراج اللصق المنسق، وعندما يعود المصدر إلى الوضع المرئي، وقبل النسخ، وقبل استخراج النص العادي، ومرة ​​أخرى أثناء إنشاء مستندات المعاينة. يؤدي التكرار إلى تقليل التجاوز العرضي بين الإجراءات، لكن المشروع لا يزال يرفض تسمية أداة الرمز المميزة المكتوبة بخط اليد بمرشح XSS للأغراض العامة.

لماذا تتفوق القوائم المسموح بها على قوائم الحظر - يوضح أن تسمية ما هو مسموح به أكثر أمانًا من محاولة إدراج كل بنية خطيرة

تبدأ القائمة المسموح بها بتسمية البنية المسموح بها: الفقرات والعناوين والعناصر المضمنة الدلالية والقوائم وقوائم الوصف والاقتباسات والعناصر المشابهة للتعليمات البرمجية ونقاط الارتساء. يفقد المجمّع العادي غير المعروف علامته أثناء الاحتفاظ بالنص. الحاوية الخطيرة مثل البرنامج النصي أو النمط أو iframe أو النموذج أو SVG أو MathML تفقد محتوياتها أيضًا.

ستحتاج القائمة المحظورة إلى توقع كل بناء خطير أو غير مدعوم. ترفض القائمة المسموح بها ما لا تفهمه. يعد هذا اختيارًا قويًا لمخرجات أحد المحررين المقيدة، ومع ذلك يظل مقيدًا بالرمز المميز الخاص به. يمكن أن يؤدي استرداد الأخطاء في المتصفح HTML5 إلى إنشاء شجرة مختلفة من محلل أصغر عند تضمين مدخلات مشوهة عمدًا.

العلامات والسمات ومخططات URL — تغطي الطبقات الثلاث التي يقوم المطهر بترشيحها، مع اتخاذ قرارات نموذجية لكل منها

يحدث الترشيح في ثلاث طبقات. العناصر تقرر المفردات الهيكلية. تسمح سمات كل عنصر فقط ببعض القيم مثل الرابط href والعنوان، والاستشهاد بالاقتباس، وعنوان الاختصار، وبداية القائمة المرتبة ونوعها. يقوم فحص URL بعد ذلك بفك تشفير الكيانات، وإزالة عناصر التحكم والمسافات البيضاء من المسبار، والتحقق من المخطط الناتج.

الأنظمة المقبولة هي http، وhttps، وmailto، وtel، وftp، بالإضافة إلى النماذج النسبية التي لا تحتوي على مخطط واضح. JavaScript، يتم رفض البيانات والملفات وblob وvbscript والأمثلة في الاختبارات. تكتسب الروابط الباقية قيمًا نسبية، لكن هذه الإضافة ليست بديلاً عن سياسة الوجهة أو مراجعة الارتباط.

الأنماط: التجريد أو السماح أو إعادة الكتابة - يناقش التعامل مع النمط المضمن ولماذا تقوم العديد من الأنظمة بإسقاطه بالكامل

تتم إزالة سمات النمط بالجملة. لا تحاول الوحدة تحليل الإعلانات أو الاحتفاظ بمجموعة فرعية آمنة أو إعادة كتابة الرموز المميزة للتصميم. تعمل هذه السياسة على إزالة المظهر المنسوخ وأسطح الطلبات المستندة إلى CSS معًا. تختفي أيضًا سمات الفئة والمعرف والبيانات، مما ينتج عنه علامات محمولة ولكن أقل تعبيرًا عن عمد.

تحتاج الأنظمة التي تتطلب أسلوبًا حقيقيًا إلى سياسة مراجعة مختلفة. ستؤدي إضافة نمط إلى هذه القائمة المسموح بها بدون معقم CSS إلى تغيير سطح الأمان بشكل ملموس. يتجنب التنفيذ الحالي هذه المشكلة بدلاً من المطالبة بحل CSS السلامة للشظايا المعادية التعسفية.

مثال عملي: اشتقاق القاعدة من القائمة المسموح بها الموثقة لـ ToolAcre، وليس من التركيبات الخاصة بـ Word

ابدأ بـ `<div class="WordSection"><p style="color:red" onclick="x()">Notice <strong>today</strong></p></div>`. يتم إلغاء تغليف div، ولا يمكن أن يستمر الفصل والنمط، وتتم إزالة onclick، وتظل الفقرة بالإضافة إلى العنصر القوي. تتبع النتيجة سياسة عامة دون التأكيد على التطبيق الذي أنتج الغلاف.

أضف href جافا سكريبت وكتلة البرنامج النصي. تحتفظ المرساة بكلماتها المرئية ولكنها تفقد href؛ يختفي النص والجسم. اقرأ الأسباب المذكورة. يساعد هذا التمرين في تحديد سياسة الخادم، ولكن نسخ المجموعة الفرعية ToolAcre بشكل أعمى قد يؤدي إلى حذف العناصر التي يتطلبها تطبيقك أو السماح بعناوين URL التي يحظرها نموذج التهديد الخاص بك.

التعقيم من جانب الخادم مقابل التعقيم من جانب العميل - يوضح سبب ضرورة تعقيم الخادم حتى لو كان المتصفح قد قام بذلك بالفعل

تعمل تصفية العميل على تحسين الصياغة المحلية ولكن لا يمكن الوثوق بها بواسطة خادم يتلقى الطلبات التي يتحكم فيها المستخدم. يمكن للمهاجمين تجاوز الصفحة أو الاتصال بنقطة النهاية مباشرة أو استغلال اختلاف المحلل اللغوي. يجب أن يقوم الخادم بالتحليل والتطهير مرة أخرى من خلال تنفيذ مدرك لـ HTML5 تم تكوينه لسياق العرض الخاص به.

يظل ترميز الإخراج منفصلاً أيضًا. HTML المقصود به النص يجب أن يتم تجاوزه بواسطة القالب بدلاً من إدراجه كعلامة. يحتاج الجزء الذي تم عرضه عمدًا بالشكل HTML إلى التطهير قبل تخزينه أو إخراجه وفقًا للهندسة المعمارية. تثبت المعاينة في وضع الحماية فقط أن هذه المعاينة لا تمنح أي نصوص برمجية أو نماذج أو وصول من نفس المصدر.

ما تغطيه هذه الأداة هو التصفية الضيقة لمخرجات المحرر، وليس التطهير العام للمدخلات المعادية

يقوم ToolAcre بتصفية سطح الإخراج الخاص به، على عكس ادعاء المصنف بأنه مجرد أداة فحص. التصحيح الدقيق أضيق: فهو ليس مطهرًا للأغراض العامة XSS للمدخلات العدائية التعسفية. يقول المصدر هذا صراحةً ويوثق تفاضلًا محللًا محتملاً.

يعد iframe بمثابة دفاع متعمق للعرض داخل ToolAcre. لا تمنح سمة وضع الحماية الفارغة الخاصة بها أي تنفيذ للبرنامج النصي أو تقديم النموذج أو الوصول من نفس المصدر، كما أن سياسة المُحيل هي عدم المُحيل. بمجرد نسخ HTML في مكان آخر، فإن هذا الإطار لم يعد يحميه. سلامة النشر تنتمي إلى نظام الاستلام.

الوجبات الجاهزة: الفحص محليًا والتطهير على الخادم - يلخص سير العمل وكيف يساعدك المحرر في معرفة ما سيواجهه المطهر

قم بالفحص محليًا والتطهير على الخادم والعرض وفقًا للسياق. هذه ثلاث خطوات متميزة. يساعد ToolAcre في الكشف عن الأمتعة الملصقة ويقدم مجموعة فرعية مسودة متحفظة، بينما تجعل إشعارات الإزالة تأثيرات السياسة مرئية قبل أن يصل الجزء إلى CMS أو سير عمل البريد الإلكتروني.

لا تقم بتسويق معاينة ناجحة كدليل ضد XSS. استخدم حمولات الاختبار فقط في المحتوى القابل للتصرف، واحتفظ بالمصدر الخام بشكل منفصل عندما يكون التحقيق مهمًا، وتحقق من تطهير الوجهة بشكل مستقل. يجب أن تتوقف مطالبات الأمان تمامًا حيث تتوقف التعليمات البرمجية وحدود العرض.