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