04.02.2008, 14:31
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 !";
}
}