2009-12-11 14 views

Antwort

3

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.

2

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).

1

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.

2

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_namehf_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)