سؤال

لدى PHP وظيفة رائعة تسمى أتش تي أم أل أحرف خاصة () حيث تقوم بتمريرها بسلسلة وتستبدل كافة أحرف HTML الخاصة بمكافئاتها الآمنة بالكاد محطة واحدة لتعقيم المدخلات.جميل جدا أليس كذلك؟

حسنًا، هل يوجد ما يعادله في أي من مكتبات .NET؟

إذا لم يكن الأمر كذلك، فهل يمكن لأي شخص الارتباط بأي نماذج تعليمات برمجية أو مكتبات تقوم بذلك بشكل جيد؟

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

المحلول

جرب هذا.

var encodedHtml = HttpContext.Current.Server.HtmlEncode(...);

نصائح أخرى

لا أعرف إذا كان هناك بديل دقيق، ولكن هناك طريقة HtmlUtility.HtmlEncode الذي يستبدل الأحرف الخاصة بما يعادلها في HTML.ابن عم قريب هو HtmlUtility.UrlEncode لتقديم عناوين URL.يمكنك أيضًا استخدام عناصر تحكم التحقق من الصحة مثل RegularExpressionValidator, RangeValidator, ، و System.Text.RegularExpression.Regex للتأكد من أنك تحصل على ما تريد.

في الواقع، قد ترغب في تجربة هذه الطريقة:

HttpUtility.HtmlAttributeEncode()

لماذا؟نقلا عن صفحة HtmlAttributeEncode في مستندات MSDN:

يقوم الأسلوب HtmlAttributeEncode بتحويل علامات الاقتباس ("") وعلامات الضم (&) وأقواس الزاوية اليسرى (<) فقط إلى كيانات أحرف مكافئة فقط.وهو أسرع بكثير من أسلوب HtmlEncode.

بالإضافة إلى الإجابات المقدمة:عند الاستخدام محرك عرض الحلاقة (وهو محرك العرض الافتراضي في ASP.NET)، فإن استخدام الحرف "@" لعرض القيم سيؤدي تلقائيًا إلى ترميز القيمة المعروضة.هذا يعني أنه ليس عليك استخدام التشفير.

ومن ناحية أخرى، عندما لا تريد تشفير النص، عليك تحديد ذلك بشكل صريح (باستخدام @ أتش تي أم أل. راو).وهذا في رأيي أمر جيد من الناحية الأمنية.

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