Hallo liebe Experten.
Habe versucht, mich mit der (zumindest standardmäßigen) Sicherheit in PHP zu beschäftigen.
Würde dazu gerne mal ein paar Meinungen/Ratschläge hören. Habe als Test ein kleines Gästebuch geschrieben. Die Einträge werden folgendermaßen vor dem Übernehmen in die Datenbank (mysql) bearbeitet:
$mailex = '/[\w \.-_]+@[\w \-_]+\.[\w \.]{2,}/';
if ($_POST['name'] == NULL OR $_POST['text'] == NULL OR $_POST['mail'] == NULL OR preg_match($mailex, $_POST['mail']) == FALSE) {
header('location: http://localhost/~jojo/gb/gb.php');
die();
}
$name = addslashes($_POST['name']);
$name = strip_tags($name);
$mail = addslashes($_POST['mail']);
$mail = strip_tags($mail);
$hp = addslashes($_POST['hp']);
$hp = strip_tags($hp);
$text = addslashes($_POST['text']);
$text = strip_tags($text, '<a>');
$ip = $_POST['ip'];
Alles anzeigen
Das Ganze bei register_globals=off und magic_quotes=off
Wäre das an Sicherheit ausreichend?
Wie sieht es zum Beispiel mit dieser Zeile aus:
Ich erlaube dem Nutzer ja praktisch, <a> Tags im Post zu verwenden. Angenommen, ein User versteckt in diesem Tag böses Js als Attribut. Würde strip_tag diesen Entfernen oder ignorieren?
Was gibt es noch zu beachten (abgesehen von dem include, unter realen Bedingungen käme das von woanders)?
Danke euch für Antworten und Anregungen,
Jojo