remove recibir por metodo funciona enviar datos array _post php arrays sanitization

recibir - ¿Cuál es un buen método para sanear toda la matriz $_POST en php?



recibir variables post php (4)

Depende para qué se utiliza.

Si lo está insertando en la base de datos, mysql_real_escape_string() para cadenas citadas y conversión de tipos para números sería el camino a seguir: declaraciones bien preparadas, pero eso es un asunto completamente diferente.

Si planea enviar los datos a la página web, le recomendaría algo como htmlspecialchars()

Si planea usar la entrada del usuario como un argumento de shell, entonces usaría escapeshellarg()

Pasando a su pregunta sobre el envío de correos electrónicos. Bueno, lo siguiente debería ser suficiente:

filter_var($_POST[''message''], FILTER_SANITIZE_STRING);

Todo lo que hace es básicamente quitar las etiquetas y codificar caracteres especiales.

Tengo un formulario con muchas variables que luego envía un correo electrónico, en lugar de limpiar cada valor de $_POST con filter_var($_POST[''var''], FILTER_SANITIZE_STRING); Estaba buscando un código más simple. Se me ocurrió lo siguiente, que parece funcionar, ya que creo que la acción predeterminada es FILTER_SANITIZE_STRING , pero me preguntaba qué opinión tiene la gente, y si esto no es una buena práctica, ¿quizás podría decirme por qué? Los valores de $_POST luego se incorporan individualmente en nuevas variables, por lo que solo estaría usando array_map al comienzo para desinfectar todo ...

$_POST = array_map(''filter_var'', $_POST);

Gracias por sus respuestas, para darle un poco más de información, básicamente:

Tengo 20-30 campos de entrada en un formulario que se están capturando, los datos se muestran al usuario para verificar su entrada, las variables se sanean, el usuario recibe un correo electrónico y finalmente los datos se ingresan en una db .

actualmente estoy desinfectando usando la función array_map anterior, así como FILTER_SANITIZE_EMAIL en la dirección de correo electrónico antes de enviar un correo electrónico y luego escapar de la entrada usando mysql_real_escape_string () antes de la inserción en la db. Sin entrar en declaraciones preparadas, etc., ¿crees que debería estar haciendo algo adicional? ¡gracias de nuevo!


Esto es lo que uso en todos mis proyectos:

function util_array_trim(array &$array, $filter = false) { array_walk_recursive($array, function (&$value) use ($filter) { $value = trim($value); if ($filter) { $value = filter_var($value, FILTER_SANITIZE_STRING); } }); return $array; }

Permite recortar y desinfectar una matriz anidada de datos publicados


No hay forma correcta de hacer saneamiento general. El método de saneamiento que necesite dependerá de lo que se haga con los datos.

Desinfecte los datos directamente antes de utilizarlos.


Si el tipo de cada una de sus variables de entrada es una cadena y desea sanearlas todas a la vez, puede usar:

// prevent XSS $_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING); $_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

Esto desinfectará sus arreglos $ _GET y $ _POST.

Visto aquí: PHP -Sanitizar los valores de una matriz