Ich hatte die letzten zwei Tage mal Zeit mich genauer in Sicherheitsaspekte einzulesen, aber ich bin mir nicht sicher, ob ich es an manchen Stellen richtig verstanden habe. Mich würde nun interessieren was an den beiden unten angeführten Codes weggelassen werden kann und was eventuell fehlt, um SQL-injectons und auch Javascript-Hacks zu unterbinden.
POST-Beispiel: Es soll ein Eintrag in ein Gästebuch vorgenommen werden
$comment = mysql_real_escape_string(trim(htmlspecialchars($_POST['comment'])), ENT_QUOTES);
htmlspecialchars kann hier wohl weggelassen werden, richtig? Ist ENT_QUTES dennoch relevant wenn ich vorher schon das real_escape_string Attribut einsetze?
GET-Beispiel: Aus der URI meineseite.de?id=1&title=headline soll die Überschrift ausgelesen werden, die im weiteren Prozedere der Seite für weitere SQL- SELECT und evtl. auch POST Befehle als Variable genutzt wird.
$title = htmlspecialchars($_GET['title'], ENT_QUOTES);
Hier bin ich mir gar nicht sicher, ob man den $_GET Befehl überhaupt um Sicherheitsattribute ergänzen muss oder diese erst später bei eventuellen POST Befehlen verwendet werden. Mein Gedanke ist hier, dass wenn ich ja bereits die Variablenauslesung aus der GET-Varbiable sicher mache, ich später nicht noch einmal in den einzelnen SELECT und POST Queries mit Sicherheitsattributen arbeiten muss. Weis aber wie gesagt nicht, ob der Denkansatz sinn macht und optimal ist.
Vielen Dank schon mal für die Hilfe.
POST-Beispiel: Es soll ein Eintrag in ein Gästebuch vorgenommen werden
$comment = mysql_real_escape_string(trim(htmlspecialchars($_POST['comment'])), ENT_QUOTES);
htmlspecialchars kann hier wohl weggelassen werden, richtig? Ist ENT_QUTES dennoch relevant wenn ich vorher schon das real_escape_string Attribut einsetze?
GET-Beispiel: Aus der URI meineseite.de?id=1&title=headline soll die Überschrift ausgelesen werden, die im weiteren Prozedere der Seite für weitere SQL- SELECT und evtl. auch POST Befehle als Variable genutzt wird.
$title = htmlspecialchars($_GET['title'], ENT_QUOTES);
Hier bin ich mir gar nicht sicher, ob man den $_GET Befehl überhaupt um Sicherheitsattribute ergänzen muss oder diese erst später bei eventuellen POST Befehlen verwendet werden. Mein Gedanke ist hier, dass wenn ich ja bereits die Variablenauslesung aus der GET-Varbiable sicher mache, ich später nicht noch einmal in den einzelnen SELECT und POST Queries mit Sicherheitsattributen arbeiten muss. Weis aber wie gesagt nicht, ob der Denkansatz sinn macht und optimal ist.
Vielen Dank schon mal für die Hilfe.