سؤال

ما هو أفضل حل لتطهير الناتج HTML في القضبان (لتجنب هجمات XSS)؟

ولدي خياران: WHITE_LIST المساعد أو تطهير طريقة من تطهير مساعد HTTP: //api.rubyonrails.com/classes/ActionView/Helpers/SanitizeHelper.html . بالنسبة لي حتى اليوم البرنامج المساعد WHITE_LIST عملت بشكل أفضل وفي الماضي، كان تطهير عربات التي تجرها الدواب جدا، ولكن كجزء من جوهر، وربما سيكون قيد التطوير وسيتم دعم لبعض الوقت.

هل كانت مفيدة؟

المحلول

وأعتقد أن طريقة ح المساعد يعمل هنا:

<%= h @user.profile %>

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

إذا كنت تريد التنسيق، ربما ننظر في تخفيض السعر.

نصائح أخرى

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

</td></tr></span></div>

ووحقا فوضى مع التصميم الخاص بك.

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top