Wie benennen Sie Ihre Feldnamen in einer Webseite, ohne die Struktur Ihrer Datenbanktabellen zu offenbaren?Benennen von Formularfeldern in einer Webseite
Antwort
nennen sie einfach etwas anderes in der HTML und Karte manuell zwischen den Datenbank-Feldnamen und den HTML-Feldnamen in Ihrem PHP-Code.
Aber wirklich, wenn Sie prepared statements verwenden und ordnungsgemäße Autorisierung und Fehlerprüfung durchführen, sollte es keine Rolle spielen, ob die Leute die Tabellenfeldnamen kennen.
Ich gehe davon aus, dass Sie nur die Eingabefeldnamen umbenennen könnte, wenn Sie denken, das ist ein Problem. Sie müssen sie irgendwann mit den richtigen SQL-Spalten verknüpfen.
Dies würde Sicherheit durch Unklarheit sein.
Sein vorsichtig mit, wie Sie behandeln Eingabe in Ihrer Anwendung klingt wie ein vernünftiger Ansatz jedoch (SQL-Injection zu vermeiden).
Wenn dies wirklich ein Problem für Sie ist dann nur Benutzer Feld1, Feld2 (oder F1, F2) und ordnen Sie auf Ihre Datenbankfelder in Ihrem Labor Buch. Aber wenn Sie nicht Datenbankaufrufe von Ihrem HTML-Code ausführen, dann kann nur sehr wenig über die Datenbankstruktur selbst herausgefunden werden, wenn Sie sich die Formulare mit den Feldnamen ansehen.
ich in der Regel einen Präfix und Suffix sanitization/Handling Bequemlichkeit hinzuzufügen.
Zum Beispiel, wenn ein Feld nur Buchstaben enthalten muss, und nichts anderes, werde ich es tx_field_name
nennen, sonst wenn gefiltert html, hx_field_name
hf_field_name
oder vollständige HTML enthalten kann ... das Skript, die die Form kennen lernen werden wie man die Werte in der Basis des Präfixes saniert und überprüft.
Aber wenn Ihre Bedeutung explicity ist der Name der Datenbank der Spalte auszublenden, na ja, gab ihm den Namen, den Sie möchten, foo
, bar
oder zufällige Suffixe hinzufügen, oder sogar die _
mit -
ersetzen (die in HTML-Feldern erlaubt nennen, aber nicht in der Datenbank Spaltenname)
PS: ich hoffe, dass Sie SIND nICHT einen Code wie
mit$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'");
die Form zu handhaben, aber die Abbildung es mit pHP (..und ein bisschen Vorbereitete Zustände werden nicht schlecht sein)
Ja, ein HTML-Formular. – giancarlo
Ziemlich gute Frage. =) –