2009-12-11 4 views

Respuesta

3

Solo nómbreles algo más en el HTML, y mapee manualmente entre los nombres de los campos de la base de datos y los nombres de los campos HTML en su código PHP.

Pero en realidad, si usa prepared statements y realiza la autorización adecuada y la comprobación de errores, no debería importar si las personas conocen los nombres de los campos de la tabla.

2

Supongo que podría cambiar el nombre de los nombres de los campos de entrada si cree que es un problema. En cualquier caso, debe vincularlos a las columnas SQL correctas.

Esto sería la seguridad a través de la oscuridad.

Tener cuidado con la forma de manejar la entrada (para evitar la inyección de SQL) en la aplicación suena como un enfoque más sensato.

1

Si esto realmente es una preocupación para usted, simplemente use el campo field1, field2 (o f1, f2) y asígnelos a los campos de su base de datos en su libreta de laboratorio. Pero, a menos que esté haciendo llamadas a la base de datos desde su código HTML, es muy poco lo que se puede deducir sobre la estructura de la base de datos con solo mirar los formularios con los nombres de campo que sin.

2

Normalmente agrego un prefijo y sufijo para conveniencia de desinfección/manejo.

Por ejemplo, si un campo debe contener sólo letras, y nada más, Voy a nombre tx_field_name que, de lo contrario si puede contener HTML filtrado, hf_field_name o HTML hx_field_name ... la secuencia de comandos que va a obtener la forma sabe cómo desinfectar y verificar los valores en base al prefijo.

Pero si su significado es explícitamente ocultar el nombre de la columna de la base de datos, así, le dieron el nombre que desee, foo, bar, o añadir sufijos al azar, o incluso sustituir el _ con - (que se permiten en campos HTML nombre, pero no en nombre de la columna de base de datos)

PD: espero que nO ESTÁ utilizando un código como

$values = $_POST; 
$n_val = count($values); 
$i = 0; 
foreach($values AS $key => $value){ 
    $pairs .= " `$key` = '$value' "; 
    if($n_val > $i){ 
     $pairs .= ', '; 
    } 
} 
thedbyouprefer_query("UPDATE table SET $pairs WHERE id = '42'"); 

para manejar el formulario, pero el mapeo con php (..y un poco de staements preparados no será malo)

Cuestiones relacionadas