¿Cuál es la forma correcta de evitar los datos de entrada y salida del usuario en contra de la inyección xss y sql [duplicado]

-4

¿Cuál es la forma correcta de evitar la entrada y salida de datos del usuario contra la inyección xss y sql? Este es el que quería usar, no sé si está protegido.

Esto a continuación como entrada

function check_input($data) {
     $data = trim($data);
     $data = strip_tags($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     $data = filter_var($data, FILTER_SANITIZE_STRING);
     return $data;
}

Luego, use esto a continuación como salida

echo htmlspecialchars($data, ENT_QUOTES, 'UTF-8');

o

echo htmlentities($data, ENT_COMPAT, 'UTF-8', false);
    
pregunta General Omosco 21.01.2017 - 12:02
fuente

1 respuesta

1

Este es el enfoque equivocado. No debe diseñar una función que resuelva todos los problemas de seguridad y luego aplicarla a ciegas en todas las situaciones, sin importar el contexto.

La forma de protegerse contra XSS depende del contexto al que se envía, por lo que necesita diferentes funciones según el contexto. Consulte la hoja de trucos OWASP XSS . Esa es una lectura bastante larga, porque XSS es un problema bastante complicado. Si desea evitar la complejidad de tratar con él, use un marco que lo ayude a cuidarlo.

Usar saneamiento para cuidar SQLi es una mala idea. En su lugar, use declaración preparada . También ayudará con el rendimiento, por lo que es un ganar-ganar.

    
respondido por el Anders 22.01.2017 - 19:49
fuente

Lea otras preguntas en las etiquetas