Dado que los ataques de inyección explotan las secuencias de control en la forma en que se interpreta output , y dado que los diferentes formatos de salida utilizan diferentes secuencias de control (piense en JavaScript versus SQL en comparación con HTML), su técnica de desinfección debe reflejar dónde la salida va Si desinfecta para la salida después de la entrada, está suponiendo a dónde se enviará esa salida, lo que puede resultar incorrecto, tal vez debido a algún cambio futuro o algún caso de uso que no hizo. No lo pienses.
Por lo tanto, como regla, sugeriría desinfectar la salida para reflejar la sensibilidad de inyección específica para el formato en el que se imprime.
Tenga en cuenta que si está almacenando una entrada preformateada y el contexto del formato no está disponible en la salida (como el almacenamiento de HTML para una publicación de blog), puede realizar algunas comprobaciones en la entrada , pero este es un escenario ligeramente diferente que el simple escape general.
De nuevo, como norma, evite su salida en lugar de su entrada, pero haga las excepciones que sean necesarias con el entendimiento de que esas excepciones deben observarse con un escrutinio adicional, ya que está creando un agujero en su aplicación que necesita cuidadosamente. guardia.