Sichere Datenabfrage ??
#1
Wollte mal fragen ob folgendes Script sicher ist oder ob ihr da eine möglichkeit für header injections seht ??

Code:
if(!$_POST["name"]){
    $error[8]="Sie haben keinen Namen angeben!";
}else{
    $namemuster="/^[[:space:]-a-z]+$/i";
    if(!preg_match($namemuster,$_POST["name"])){
        $error[8]="Ungültiger Name! Sie dürfen im Namensfeld nur Buchstaben, Leerzeichen und Bindestriche benutzen!";
    }
}
if(!$_POST["plz"]){
    $error[7]="Sie haben keine Postleitzahl angegeben!";
}else{
    $plzmuster="/^[0-9]{5}$/";
    if(!preg_match($plzmuster,$_POST["plz"])){
        $error[7]="Ungültige Postleitzahl! Sie dürfen nur Ziffern verwenden und die PLZ muss vollständig sein!";
    }
}
if(!$_POST["wohnort"]){
    $error[6]="Sie haben keinen Wohnort angegeben!";
}else{
    $wohnmuster="/^[a-z[:space:]]+$/i";
    if(!preg_match($wohnmuster,$_POST["wohnort"])){
        $error[6]="Ungültiger Wohnort! Sie dürfen nur Buchstaben verwenden!";
    }
}
if(!$_POST["geb_jahr"]){
    $check=false;
    $error[5]="Sie haben kein komplettes Geburtsdatum angegeben.!";
}else{
    $gebmuster="/^[0-9]{4}$/";
    if(!preg_match($gebmuster,$_POST["geb_jahr"])){
        $error[5]="In der Jahresangabe ihres Geburtsdatum dürfen nur Zahlen vorkommen!";
    }
}
if(!$_POST["strasse"]){
    $error[4]="Sie haben keine Straße angegeben!";
}else{
    $strassenmuster="/^[[:space:]-a-z0-9]+[[:space:]]*,[[:space:]0-9]+$/i";
    if(!preg_match($strassenmuster,$_POST["strasse"])){
        $error[4]="Fehlerhafte Eingabe von Straße oder Hausnummer!<br>Denken sie an das \",\" zwischen Straße und Hausnummer !";
    }
}
if($_POST["email"]){
    $emailmuster="/^[_a-z0-9]+(\.[_a-z0-9-]+)*@([a-z0-9-]+)\.([a-z]{2,4})$/i";
    if(!preg_match($emailmuster,$_POST["email"])){
        $error[3]="Fehlerhafte E-Mail Adresse!";
    }
}
if(!$_POST["agb"]||$_POST["agb"]!=1){
    $error[9]="Sie haben die Teilnahmebedingungen nicht akzeptiert!";
}
$gebdaytest="/^[0-9]{1,2}$/";
if(!preg_match($gebdaytest,$_POST["geb_tag"])){
    $error[1]="Headerinformationen fehlerhaft!! Tagesangabe";
}
$gebmonthtest="/^[a-zA-Z]+$/";
if(!preg_match($gebmonthtest,$_POST["geb_monat"])){
    $error[2]="Headerinformationen fehlerhaft!! Monatsangabe ";
}

if(isset($error)){
    echo"Es wurde(n) folgende(r) Fehler festgestellt:<br><hr>";
    foreach($error as $er){
        echo $er."<hr>";
    }
}else{
    $geb=$_POST["geb_tag"].".".$_POST["geb_monat"].".".$_POST["geb_jahr"];
    if(!$_POST["klettern"]||$_POST["klettern"]==""){
        $_POST["klettern"]="nein";
    }
    if(!$_POST["radfahren"]||$_POST["radfahren"]==""){
        $_POST["radfahren"]="nein";
    }
    if(!$_POST["bootfahren"]||$_POST["bootfahren"]==""){
        $_POST["bootfahren"]="nein";
    }
    if(!$_POST["telefon"]||$_POST["telefon"]==""){
        $_POST["telefon"]="Keine Angabe";
    }
    if(!$_POST["badeerlaubnis"]||$_POST["badeerlaubnis"]==""){
        $_POST["badeerlaubnis"]="nein";
    }
    if(!$_POST["stadtaufenthalt"]||$_POST["stadtaufenthalt"]==""){
        $_POST["stadtaufenthalt"]="nein";
    }
    $anmeld=mysql_query("
    INSERT INTO hb_form_2
    (freizeit,name,plz,wohnort,strasse,telefon,geb,email,schwimmen_erlaub,schwimmer,klettern,radfahren,bootfahren,aufenthalt,bemerkungen)VALUES
    ('".mysql_real_escape_string(htmlspecialchars($_POST["freizeit"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["name"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["plz"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["wohnort"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["strasse"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["telefon"]))."',
    '".$geb."',
    '".$_POST["email"]."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["badeerlaubnis"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["schwimmer"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["klettern"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["radfahren"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POSt["bootfahren"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["stadtaufenthalt"]))."',
    '".mysql_real_escape_string(htmlspecialchars($_POST["bemerkungen"]))."')");
    if(!$anmeld){
        echo mysql_error();
    }else{
        echo "Erfolgreich !";
    }
}
greetings,
Moritz

Follow me on twitter !
  Zitieren


Nachrichten in diesem Thema
Sichere Datenabfrage ?? - von Futjikato - 04.02.2008, 14:31
[Kein Betreff] - von pattex - 04.02.2008, 14:36
[Kein Betreff] - von Futjikato - 04.02.2008, 15:25
[Kein Betreff] - von kickedINtheHEAD - 04.02.2008, 19:26
[Kein Betreff] - von Futjikato - 04.02.2008, 19:36
[Kein Betreff] - von kickedINtheHEAD - 04.02.2008, 19:51
[Kein Betreff] - von Futjikato - 04.02.2008, 22:04
[Kein Betreff] - von kickedINtheHEAD - 05.02.2008, 07:36

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste