¿Es suficiente la limpieza de texto en un formulario PHP?

1

Se pregunta si lo siguiente es suficiente para sanear la entrada en un formulario de contacto simple que contiene entradas para $name , $email , $phone y $text . Gracias!

No hay SQL.

Simplemente me pregunto si estoy haciendo esto correctamente.

<?php

$name = $email = $phone = $text = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = test_input ($_POST['name']);
    $email = test_input ($_POST['email']);
    $phone = test_input ($_POST['phone']);
    $text = test_input ($_POST['text']);
}

function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
    
pregunta A Tom Called Stu 29.05.2015 - 22:40
fuente

2 respuestas

3

Llamar a htmlspecialchars($data) probablemente esté bien si su programa solo está interactuando con HTML, por lo que en su ejemplo simple, probablemente esté bien. Pero a medida que sus programas se vuelven más complicados y los datos se transfieren a diferentes entornos, eso ya no será suficiente. Por ejemplo, las cadenas que son peligrosas en HTML son diferentes de las que son peligrosas en JavaScript o SQL, o Bash, o

respondido por el Mike Ounsworth 29.05.2015 - 23:21
fuente
0

No soy un experto, pero sí uso el "Enfoque de lista blanca", aprendí que el proceso se llama así más adelante.

La función simple que uso mucho es

preg_replace()

Ejemplo para números:

$_filtered = preg_replace('/[^0-9]/', '', $_foo)

y luego

$dbh->prepare($_query) PDO Prepared Statements para la parte SQL posterior.

    
respondido por el Sanjeev Sarkar 02.06.2015 - 14:51
fuente

Lea otras preguntas en las etiquetas