c# - remove - PHPs htmlspecialcharacters equivalent in.NET?
quitar tags php (5)
En una adición a las respuestas dadas: Al usar el motor Razor view (que es el motor de vista predeterminado en ASP.NET), usar el carácter ''@'' para mostrar valores codificará automáticamente el valor mostrado. Esto significa que no tiene que usar codificación.
Por otro lado, cuando no desee codificar el texto, debe especificarlo explícitamente (utilizando @ Html.Raw ). Lo cual es, en mi opinión, algo bueno desde el punto de vista de la seguridad.
PHP tiene una gran función llamada htmlspecialcharacters () donde le pasa una cadena y reemplaza todos los caracteres especiales de HTML con sus equivalentes seguros, es casi una ventanilla única para desinfectar los datos. Muy bien ¿verdad?
Bueno, ¿hay un equivalente en cualquiera de las bibliotecas .NET?
Si no, ¿alguien puede vincular a muestras de código o bibliotecas que hacen esto bien?
Prueba esto.
var encodedHtml = HttpContext.Current.Server.HtmlEncode(...);
En realidad, es posible que desee probar este método:
HttpUtility.HtmlAttributeEncode()
¿Por qué? Citando la página HtmlAttributeEncode en documentos de MSDN :
El método HtmlAttributeEncode convierte solo las comillas ("), ampersands (&) y los corchetes angulares a la izquierda (<) a entidades de caracteres equivalentes. Es considerablemente más rápido que el método HtmlEncode.
No sé si hay un reemplazo exacto, pero hay un método HtmlUtility.HtmlEncode
que reemplaza los caracteres especiales con sus equivalentes HTML. Un primo cercano es HtmlUtility.UrlEncode
para renderizar URL''s. También puede usar controles de validador como RegularExpressionValidator
, RangeValidator
y System.Text.RegularExpression.Regex
para asegurarse de obtener lo que desea.