Variables de escape

He leído que es suficiente e incluso recomendado para escapar de los caracteres en la salida, no en la entrada.

Se podría aplicar fácilmente a todas las variables de obtención, ya que no se inyectan en la base de datos desde el nivel del formulario.

Sin embargo, no estoy seguro de qué hacer con todas las variables de publicación. Si no proviene de la base de datos, entonces si se trata de datos de entrada sin procesar, el escape es completamente necesario. Pero estoy usando PDO preparar / ejecutar para escapar de todas las variables. Preguntas ahora:

¿Está bien usar la preparación / ejecución de DOP tanto en la selección como en la inserción de instrucciones? ¿No está escapando las variables dos veces?Digamos que obtengo alguna variable a través de la declaración de PDO exeute: ¿está bien mostrar esta variable simplemente con $ _POST ['variable'] sin escaparla (si ya se hizo en la función PDO)?¿Es htmlspecialchars () suficiente para escapar de cosas como las variables GET que no provienen de la base de datos?

Y lo más importante: ¿es todo esto, la preparación / ejecución de la DOP y htmlspecialchars (), suficiente para evitar todos los ataques XSS? ¿O también debería hacer más? Si es así, ¿qué debería ser esto? ¿Eliminando todas las etiquetas html de la entrada? ¿Utilizando BB-Code en su lugar?

Respuestas a la pregunta(4)

Su respuesta a la pregunta