Schwuffi: Bewertung: Ist dieses Skript einen Pfifferling wert?

Beitrag lesen

Es ist besser, (Schritt 1) wenn die Daten gleich zum Scriptbeginn von diesen Magic Quotes (oder anderen Transportsicherungen) bereinigt werden.

D.h. ganz zu Beginn prüfen ob magic_quotes_gpc aktiv ist und gegebenenfalls mit addslashes bereinigen:

  if(get_magic_quotes_gpc() == false)  
  {  
     $buchstb = addslashes($_GET['buchstb']);  
     $wort = addslashes($_GET['wort']);  
  }  
  else  
  {  
  $buchstb = $_GET['buchstb'];  
  $wort = $_POST['wort'];  
  }

(aber so ist's vermutlich falsch, denn das war ja meine allererste Variante :))

Dann (Schritt 2) durchlaufen sie das Affenformular, wobei bei der Ausgabe der Daten in die Formularfeld-Vorbelegung (<input ... value=[hier]>) HTML-spezifisch kodiert wird (htmlspecialchars()).

D.h. bei echos spuck ich meine Werte mit htmlspecialchars() wieder aus!? (wobei das bei mir doch gar nicht der Fall ist, da ich ja hier keine Formulare habe)

Sind keine Fehler mehr im Formular geht es weiter zum Datenbank-Teil (Schritt 3) und dort werden die Daten, so wie sie am Ende von Schritt 1 waren - also "entmagicquoted"/transportentsichert aber noch nicht "htmlspecialchared", in den SQL-String eingefügt und dabei mit mysql_real_escape_string() behandelt.

Also sowas wie:

$query = sprintf("SELECT begriff, url FROM lexikon WHERE substr(begriff,1,1) = '%s'", mysql_real_escape_string($buchstb));

Das würde ich gern dir überlassen, da das ist keine sicherheitskritsche Angelegenheit ist, sondern nur Nachdenken und das richtige Kombinieren der von dir gestellten Bedingungen ist. :-)

Tjo, dann ist es ja so wie es im Moment ist korrekt (oder gar perfekt ;-)).

Ich könnt vielleicht vor der zweiten MySQL-Abfrage ein elseif buchstb = substr(begriff) einbauen, aber im Grunde verschieb ich meine jetzige Lösung damit ja nur nach oben!?