He estado progresando en el aprendizaje de la seguridad de las aplicaciones web. En este momento estoy tratando de finalizar mi estrategia para desinfectar las entradas y salidas.
Antecedentes: los usuarios pueden enviar revisiones al sitio, y esas revisiones se muestran en ciertas vistas.
1) Publicar datos . Cuando publico datos (usando $ this- > input- > post ('revisar')), me preocupa usar el filtro XSS, ya que elimina los datos del usuario y no es posible recuperarlos, así que ' Estoy buscando otra forma de validar la entrada.
Resulta que para la validación de formularios, Codeigniter nos permite " funciones PHP nativas que permiten un parámetro . " Así que puedo usar strip_tags, htmlentities, htmlspecialchars, etc.
Pregunta: ¿Cuál de estas funciones recomendaría que usara para validar la entrada del usuario? (o XSS, si crees que es mejor)
2) Consultas de base de datos . Estoy usando el registro activo de CI para mis consultas, por lo que se escapan automáticamente (para que sepa que pensé y manejé esto)
3) Salida de datos . Hay varias vistas donde se muestra la salida. Sé que necesito escapar de la salida. Por lo general, se ve algo como esto:
<?php echo $review; ?>
Pregunta: ¿Simplemente agrego una función PHP a la salida, como a continuación, o hay algo más que deba hacer para evitar que se ejecute cualquier salida?
<?php echo htmlentities($review, ENT_QUOTES); ?>