Come si denominano i nomi dei campi in una pagina Web senza rivelare la struttura delle tabelle del database?Denominazione dei campi modulo in una pagina Web
risposta
Basta denominarli in HTML e mappare manualmente tra i nomi dei campi del database e i nomi dei campi HTML nel codice PHP.
Ma in realtà, se si utilizza prepared statements e si esegue l'autorizzazione e il controllo degli errori corretti, non dovrebbe importare se le persone conoscono i nomi dei campi della tabella.
Suppongo che si possa semplicemente rinominare i nomi dei campi di input se si pensa che questo sia un problema. È necessario collegarli alle colonne SQL corrette ad un certo punto comunque.
Questa sarebbe la sicurezza attraverso l'oscurità.
Fare attenzione a come si gestisce l'input (per evitare l'iniezione SQL) nella propria applicazione sembra comunque un approccio più ragionevole.
Se questo è davvero un problema per voi, quindi, solo campo utente1, campo2 (o f1, f2) e mapparli ai campi del database nel libro di laboratorio. Ma, a meno che tu non stia effettuando chiamate al database dal tuo codice HTML, allora c'è ben poco che si possa dedurre circa la struttura del database stesso semplicemente guardando i moduli con i nomi dei campi piuttosto che senza.
Di solito aggiungo un prefisso e un suffisso all'igiene/maneggevolezza.
Ad esempio, se un campo deve contenere solo lettere, e non altro, io ti nomino si tx_field_name
, altrimenti se può contenere html filtrato, hf_field_name
o full html hx_field_name
... lo script che otterrà il modulo sapere come disinfettare e controllare i valori in base al prefisso.
Ma se il vostro senso è esplicitamente Nascondi il nome della colonna del database, beh, ha dato il nome che si desidera, foo
, bar
, o aggiungere suffissi casuali, o addirittura sostituire il _
con -
(a cui è consentito nei campi html nome, ma non nel database nome della colonna)
ps: spero che si nON sIETE utilizzando un codice come
$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'");
per gestire la forma, ma la mappatura con php (..e un po ' di posizioni preparate non sarà male)
Sì, un modulo HTML. – giancarlo
Bella domanda. =) –