Estoy actualizando la seguridad de un sitio existente (por lo que no puedo rehacer todo con un marco que tiene funciones xss integradas), por lo que estoy buscando una forma de protegerme contra ataques XSS como los que listado por OWASP here .
En este momento utilizo htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
para la salida en HTML, json_encode
para JS y HTMLPurifier para datos que contienen etiquetas HTML, pero me preocupa que esto no sea suficiente / correcto. Estoy buscando una función que pueda usar como:
<div><?php echo escape_for_html($text); ?></div>
<img src="<?php echo escape_for_attribute($text); ?>">
Después de algunas investigaciones, parece que las soluciones como xss_clean, ESAPI y PHPSEC ya no se mantienen o no se recomiendan. ¿Cómo puedo protegerme contra xss cuando hago eco en los atributos de etiquetas (incluidas las URL), JavaScript y CSS?