que no tienen una respuesta específica a su pregunta, pero me gustaría señalar que la lista blanca vs enfoque de la lista negro no sólo "buena". Es importante. Muy importante. Cuando se trata de seguridad, cada pequeña cosa es importante. Recuerde que con cross-site scripting y cross-site request forgery, incluso si su sitio no está mostrando los datos sensibles, un hacker podría infectar a su sitio mediante la inyección de javascript y lo utilizan para obtener datos confidenciales de otro sitio. Hacerlo bien es crítico.
OWASP guidelines specify using a white list approach. Las pautas de Cumplimiento de PCI también especifican esto en estándares de codificación (ya que se refieren a las directrices de OWASP).
Además, la versión más nueva de la biblioteca AntiXss tiene una nueva y agradable función: .GetSafeHtmlFragment() que es agradable para aquellos casos en los que desea almacenar HTML en la base de datos y mostrarlo al usuario como HTML.
Además, en cuanto al "error", si está codificando correctamente y siguiendo todas las pautas de seguridad, está utilizando procedimientos almacenados parametrizados, por lo que las comillas simples se manejarán correctamente, si no está codificando correctamente , ninguna biblioteca extravagante lo protegerá por completo. La biblioteca AntiXss pretende ser una herramienta para ser utilizada, no un sustituto del conocimiento. Confiando en que la biblioteca lo haga bien para usted, esperaría un pincel realmente bueno para producir buenas pinturas sin un buen artista.
Editar - Añadido
Como se le preguntó en la pregunta, un ejemplo de que la lucha contra XSS le protegerá y HttpUtility no:
HttpUtility.HtmlEncode and Server. HtmlEncode do not prevent Cross Site Scripting
Esto es según el autor, aunque . No lo he probado personalmente
Suena como si estuviera arriba en sus directrices de seguridad, por lo que este puede no ser algo que tengo que decirte, pero sólo en caso de un desarrollador con menos experiencia está por ahí leyendo esto, la razón por la que digo que el enfoque de lista blanca es crítico es esto.
En este momento, hoy en día, HttpUtility.HtmlEncode puede bloquear con éxito todos los ataques por ahí, simplemente quitando/codificación <
y >
, además de algunos otros personajes conocidos "potencialmente peligrosos", pero siempre hay alguien que está tratando de pensar en nuevas formas de entrar. Permitir solo contenido conocido seguro (lista blanca) es mucho más fácil que tratar de pensar en cada posible entrada insegura que un atacante podría lanzarle (enfoque de lista negra).
Lo sentimos. Usted golpea un punto dolorido conmigo. Probablemente seas muy capaz y muy bueno en la codificación segura.Tiendo a ser un poco, um, hardcore en mi enfoque de seguridad después de heredar un sitio web muy inseguro que necesita mejoras urgentemente. – David
Genial para tener su entrada David. Soy un especialista en seguridad, pero nunca pensé en la implementación de HtmlEncode. Quiero comprender realmente el impacto que las diferentes implementaciones pueden tener. –
Lo suficientemente justo ... Encontré un ejemplo que había pedido y lo incluí en mi respuesta anterior. – David