PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP + MySql Sicherheit


Auf der Mauer
07.10.2011, 21:30:03
Hallo Community,

nachdem ich mich jetzt ein wenig in das Thema eingelesen habe,
würde ich gerne von euch wissen, ob ich es soweit richtig verstanden habe
und auch korrekt umsetze.

Die Benutzereingaben von Eingabefeldern sollen im Rohform also unverändert
in einer MySql Tabelle gespeichert werden. Was ich von den Eingaben her
defintiv nicht erwarte sind Html Formatierungen. Das ganze sollte natürlich schon
irgendwie sicher sein.

Einzelne Eingaben werden mit verschiedenen Funktionen (ctype_digit, ctype_alnum, preg_match) überprüft.


<?php

// trim entfert Leerzeichen am Anfang und am Ende des Strings
// stripslashes entfernt vorhande Maskierungen (weil magic_quotes aktiviert ist!)
// strip_tags säubert die Eingabe von html-code

$user_name = trim(strip_tags(stripslashes($_POST["user_name"])));

?>


Da ich beim Eintragen die Funktion mysql_real_escape_string benutzen möchte,
hatte ich um eine doppelte Maskierung zu vermeiden bereits stripslashes angewandt.



<?php

// Verbindung zur Datenbak herstellen
require_once("../p/web/db_connect.php");


$sql = "INSERT INTO `user_access` (user_name) VALUES (
'".mysql_real_escape_string($user_name)."'
)";
$req = mysql_query($sql) or die(mysql_error());

?>


Erst auf die Ausgabe der eingetragenen Daten wende ich die Funktion htmlspecialchars an.


<?php

echo "Name:" . htmlspecialchars($data->user_name, ENT_QUOTES) . "<br>\n";

?>



Ist das so sicher, oder gibt es da noch Verbesserungsvorschläge?


Gruß
Auf der Mauer

horst
08.10.2011, 17:07:37
Ich denke, das Skript ist so weit sicher, hier ist nochmal eine Übersicht zu htmlspecialchars, htmlentities und stip_tags:
http://kourtys-blog.de/?p=85

Auf der Mauer
08.10.2011, 19:20:23
Hallo Horst,

danke für deine Rückmeldung und den Link.
Es hat mich etwas gewundert, dass hier noch niemand Stellung bezogen hat.
Bevor ich das so in meinem Projekt übernehme, will ich natürlich sicher sein,
dass es auch richtig und sicher ist.

Im Internet gibt es wirklich viel zu diesem Thema, aber auch leider viel Nonsens,
da kann es ja nicht schaden, sich nochmal abzusichern.

Gruß
Auf der Mauer