- POST
- GET
- REQUEST
Bei Verwendung dieser Variablen immer folgendes sicherstellen:
Datenbankabfragen:
mysql_real_escape_string zwingend verwenden. Thematik SQL Injections
Require / Include:
Falsch:
require('php/' . $_GET['seite'] . '.inc.php');
Richtig:
$whitelist = array ('aboutus','impressum', 'news');
if (isset ($_GET['seite']) && in_array($_GET['seite'], $whitelist) {
require('php/' . $_GET['seite'] . '.inc.php');
} else {
require('php/default.inc.php');
}
Boolische Werte:
$foo = false;
if (isset($_GET['foo']) && $_GET['foo'] === 'true') {
$foo = true;
}
Ich denke mal, dass waren die größten Fehlerquellen.
Passwörter wären selbstverständlich zu hashen (Google "PHP SHA1")
Uploads wären zu Überprüfen (Google "PHP Detect Mime Type")
Sicherlich bist du in der Lage dies selbst zu checken, wenn du es selbst entwickelt hast. In diesem Fall wirst du denke ich auch niemanden finden der deine komplette Webseite untersucht. Zumindest nicht ohne angemessene Entlohnung.
Gegen bezalung würde ichs mir anschauen ;-)
Du hast mich falsch verstanden. Ich wollte zum Ausdruck bringen, dass das eine Sache ist, mit der man sich auseinandersetzen sollte.
Ansonsten wäre es besser wenn man soetwas gleich in Auftrag gibt.
Wenn man ein anständiges Code Review macht, und jede Logik verstehen will, dauert das fast genauso lange, als würde man die Logik selber schreiben.
Wie umfangreich ist denn dein Projekt? Wenn es dir auf Sicherheit ankommt denke ich mal größer.
Ich will lediglich das bei dem script nichts passiert was den usern oder meiner Datenbank schadet

Dann kann man sich dass ganze auch mal anschauen.
<?php
include 'heartbeat.php';
$user = $_GET["user"];
$abfrage = "SELECT * FROM login WHERE username = '$user'";
$ergebnis = mysql_query($abfrage)or die(mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
echo "<center><p><img src='/beta/upload/$row->bild1' width='600' height='400' /></p><br>";
echo "<a href='http://n3xd.eu/beta/bild.php?bild=$row->bild2&user=$user'><img src='http://n3xd.eu/beta/upload/$row->bild2' width='150' height='125' /></a><a href='http://n3xd.eu/beta/bild.php?bild=$row->bild3&user=$user'><img src='http://n3xd.eu/beta/upload/$row->bild3' width='150' height='125' /></a><a href='http://n3xd.eu/beta/bild.php?bild=$row->bild4&user=$user'><img src='http://n3xd.eu/beta/upload/$row->bild4' width='150' height='125' /></a><a href='http://n3xd.eu/beta/bild.php?bild=$row->bild5&user=$user'><img src='http://n3xd.eu/beta/upload/$row->bild5' width='150' height='125' /></a><br>";
echo "<a href='http://n3xd.eu/beta/bewertung.php?user=$user'>Like!</a><br>";
echo "<table border='0'><tr><td>Username </td><td>$row->username</td></tr><tr><td>Marke </td><td>$row->marke</td></tr><tr><td>Modell </td><td>$row->modell</td></tr><tr><td>PS </td><td>$row->ps</td></tr><tr><td>Baujahr </td><td>$row->bj</td></tr><tr><td>Farbe </td><td>$row->color</td></tr><tr><td>Felgen </td><td>$row->felgen</td></tr><tr><td>Fahrwerk </td><td>$row->fahrwerk</td></tr><tr><td>Interieur </td><td>$row->interieur</td></tr><tr><td>Exterieur </td><td>$row->ext</td></tr><tr><td>Beschreibung des Users</td><td>$row->disc</td></tr></table>";
$counter = mysql_num_rows(mysql_query("SELECT * FROM bewertung WHERE username='$user'"));
echo "$counter </center>";
}
?>
eintragen.php
<?php
include 'heartbeat.php';
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"];
$email = $_POST["email"];
$marke = $_POST["marke"];
$modell = $_POST["modell"];
$bj = $_POST["bj"];
$ps = $_POST["ps"];
$hubraum = $_POST["hubraum"];
$color = $_POST["color"];
$fahrwerk = $_POST["fahrwerk"];
$felgen = $_POST["felgen"];
$interieur = $_POST["interieur"];
$ext = $_POST["ext"];
$disc = $_POST["disc"];
if($passwort != $passwort2 OR empty($username) OR empty($passwort) OR empty($email) OR empty($marke) OR empty($modell) OR empty($bj) OR empty($disc))
{
echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>";
exit;
}
$passwort = md5($passwort);
$result = mysql_query("SELECT id FROM login WHERE username LIKE '$username'");
$menge = mysql_num_rows($result);
if($menge == 0)
{
$eintrag = "INSERT INTO login
(username, passwort, email, marke, modell, bj, ps, hubraum, color, fahrwerk, felgen, interieur, ext, disc)
VALUES
('$username', '$passwort', '$email', '$marke', '$modell', '$bj', '$ps', '$hubraum', '$color','$fahrwerk', '$felgen', '$interieur', '$ext', '$disc')";
$eintragen = mysql_query($eintrag)or die(mysql_error());
$datei = $_FILES['datei']['name'];
$dateityp = GetImageSize($_FILES['datei']['tmp_name']);
if($dateityp[2] != 0)
{
if($_FILES['datei']['size'] < 1024000000)
{
move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);
$eintrag = "UPDATE login Set bild1 = '$datei' WHERE username = '$username'";
$eintragen = mysql_query($eintrag);
}
else
{
echo "Das Bild darf nicht größer als 100 kb sein ";
}
}
else
{
echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
}
$datei2 = $_FILES['datei2']['name'];
$dateityp = GetImageSize($_FILES['datei2']['tmp_name']);
if($dateityp[2] != 0)
{
if($_FILES['datei2']['size'] < 1024000000)
{
move_uploaded_file($_FILES['datei2']['tmp_name'], "upload/".$_FILES['datei2']['name']);
$eintrag = "UPDATE login Set bild2 = '$datei2' WHERE username = '$username'";
$eintragen = mysql_query($eintrag);
}
else
{
echo "Das Bild darf nicht größer als 100 kb sein ";
}
}
else
{
echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
}
$datei3 = $_FILES['datei3']['name'];
$dateityp = GetImageSize($_FILES['datei3']['tmp_name']);
if($dateityp[2] != 0)
{
if($_FILES['datei3']['size'] < 1024000000)
{
move_uploaded_file($_FILES['datei3']['tmp_name'], "upload/".$_FILES['datei3']['name']);
$eintrag = "UPDATE login Set bild3 = '$datei3' WHERE username = '$username'";
$eintragen = mysql_query($eintrag);
}
else
{
echo "Das Bild darf nicht größer als 100 kb sein ";
}
}
else
{
echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
}
$datei4 = $_FILES['datei4']['name'];
$dateityp = GetImageSize($_FILES['datei4']['tmp_name']);
if($dateityp[2] != 0)
{
if($_FILES['datei4']['size'] < 1024000000)
{
move_uploaded_file($_FILES['datei4']['tmp_name'], "upload/".$_FILES['datei4']['name']);
$eintrag = "UPDATE login Set bild4 = '$datei4' WHERE username = '$username'";
$eintragen = mysql_query($eintrag);
}
else
{
echo "Das Bild darf nicht größer als 100 kb sein ";
}
}
else
{
echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
}
$datei5 = $_FILES['datei5']['name'];
$dateityp = GetImageSize($_FILES['datei5']['tmp_name']);
if($dateityp[2] != 0)
{
if($_FILES['datei5']['size'] < 1024000000)
{
move_uploaded_file($_FILES['datei5']['tmp_name'], "upload/".$_FILES['datei5']['name']);
$eintrag = "UPDATE login Set bild5 = '$datei5' WHERE username = '$username'";
$eintragen = mysql_query($eintrag);
}
else
{
echo "Das Bild darf nicht größer als 100 kb sein ";
}
}
else
{
echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
}
if($eintragen == true)
{
echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>";
}
else
{
echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>";
}
}
else
{
echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>";
}
?>
marke.php
<?php
include 'heartbeat.php';
$markeb = $_GET["b"];
$abfrage = "SELECT * FROM login WHERE marke = '$markeb'";
$ergebnis = mysql_query($abfrage)or die(mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
echo "<center><a href='http://n3xd.eu/beta/user.php?user=$row->username'><img src='http://n3xd.eu/beta/upload/$row->bild1' width='500' height='300' /></a></center>";
}
?>
bewertung.php
<?php
include 'heartbeat.php';
$ip=getenv("REMOTE_ADDR");
$user = $_GET["user"];
$test = mysql_query("SELECT * FROM bewertung WHERE ip='$ip' AND username='$user'");
if(mysql_num_rows($test) != 1) {
mysql_query("INSERT INTO bewertung SET ip='$ip', username='$user'");
echo "Sie haben für den User $user geliked";
} else {
echo "Sie haben bereits geliked";
}
?>
So das wars alles