Hallo,
ich habe ein Formular welches per jQuery post eine Anfrage schickt. Der PHP Code schaut zuerst per isset nach ob überhaupt die gewünschten Variablen gesendet wurden, falls nicht wird man weitergeleitet auf die Startseite. Schützt die If Abfrage schon eigentlich vor ungewünschtem direkten Zugriff auf die Datei per Adressleite im Browserfenster?
Naja, danach werden alle POST Daten escaped und jeweils überprüft, ob bestimmte Werte eingeben worden sind.
Würde gerne wissen, ob mein Code direkten Zugriff auf die PHP Datei und auch SQL Injection und alles drumherum schützt.
ich habe ein Formular welches per jQuery post eine Anfrage schickt. Der PHP Code schaut zuerst per isset nach ob überhaupt die gewünschten Variablen gesendet wurden, falls nicht wird man weitergeleitet auf die Startseite. Schützt die If Abfrage schon eigentlich vor ungewünschtem direkten Zugriff auf die Datei per Adressleite im Browserfenster?
Naja, danach werden alle POST Daten escaped und jeweils überprüft, ob bestimmte Werte eingeben worden sind.
Würde gerne wissen, ob mein Code direkten Zugriff auf die PHP Datei und auch SQL Injection und alles drumherum schützt.
PHP:
<?php
if(isset($_POST['contact_name']) and isset($_POST['contact_email']) and isset($_POST['contact_subject']) and isset($_POST['contact_message'])){
$name = mysql_escape_string($_POST['contact_name']);
$email = mysql_escape_string($_POST['contact_email']);
$subject = mysql_escape_string($_POST['contact_subject']);
$message = mysql_escape_string($_POST['contact_message']);
$i = 0;
echo "<?xml version=\"1.0\"?>\n";
echo "<response>\n";
echo "\t<mail>\n";
/* Überprüfen ob richtige Werte übergeben worden sind */
if(is_string($name) and (preg_match('/^[a-zA-Z0-9 ÄÁÅĂÂĀĄĆČÇĈĎĐÉĚÊËÉĒĖĘĞĜĢĤÍÏĪÎIJĮĴĶĻĽŁĹÑŅŇŃÕÔÓÖŌŐŔŘȘŞŠŜŚȚŤŪÚŰÜŬŮÛŲÝŸŽŹŻØƏÆÞðþáäåāąâăčćĉçđďéëêēėęěĝģğĥíïīijÍÎİIîľļĵįķńñņňřŕóöôõōőšŝşśșțťłúüûŭūűůýÿžźżøæðųə]+$/', $name) == true) and (strlen($name) <= 50) and ($name != 'type your name'))
{
}else{
echo "\t\t<name>1</name>\n";
$i = 1;
}
/* Überprüfen ob richtige Werte übergeben worden sind */
if(is_string($email) and (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $email) == true) and (strlen($email) <= 50) and ($email != 'type your email address'))
{
}else{
echo "\t\t<email>1</email>\n";
$i = 1;
}
/* Überprüfen ob richtige Werte übergeben worden sind */
if(is_string($subject) and (strlen($subject) <= 150) and ($subject != 'type subject'))
{
}else{
echo "\t\t<subject>1</subject>\n";
$i = 1;
}
/* Überprüfen ob richtige Werte übergeben worden sind */
if(is_string($message) and (strlen($message) <= 500) and ($message != 'type your message on us'))
{
}else{
echo "\t\t<message>1</message>\n";
$i = 1;
}
if($i == 1){
echo "\t\t<status>fail</status>\n";
echo "\t</mail>\n";
echo "</response>";
}else{
include 'db_login.php';
$sql = "INSERT INTO `d013f578`.`mail` (`id`, `name`, `email`, `subject`, `message`) VALUES (NULL, '".$name."', '".$email."', '".$subject."', '".$message."');";
$query = mysql_query($sql) or die;
echo "\t\t<status>ok</status>\n";
echo "\t</mail>\n";
echo "</response>";
}
}else{
header('startseite'); exit;
}
?>