Hilfe bei Webseiten Sicherheit
|
Verfasser |
Nachricht |
|
Beiträge: 56
Registriert seit: Jan 2013
Status:
offline
|
|
12.02.2013 19:02 |
|
|
Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status:
offline
|
RE: Hilfe bei Webseiten Sicherheit
|
|
12.02.2013 19:09 |
|
|
Beiträge: 462
Bewertung: 2
Registriert seit: Nov 2012
Status:
offline
|
RE: Hilfe bei Webseiten Sicherheit
Sicherheitslücken können größten Teils nur durch folgende Variablen entstehen:
- 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 ;-)
Freundliche Grüße,
[Link: Registrierung erforderlich]
Full Stack Software Engineer & Architekt
Sprachen: C#, TSQL, HTML5, Ecmascript 6, CSS 3.1, (TS, C++, PHP)
Frameworks: .NET, .NET Core, ASP.NET MVC, ASP.NET WebApi, WPF, WCF, Entity Framework, Bootstrap
|
|
12.02.2013 19:20 |
|
|
Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status:
offline
|
RE: Hilfe bei Webseiten Sicherheit
Wie hoch soll diese bezahlung sein ?
|
|
12.02.2013 19:52 |
|
|
Beiträge: 462
Bewertung: 2
Registriert seit: Nov 2012
Status:
offline
|
RE: Hilfe bei Webseiten Sicherheit
Wie hoch soll diese bezahlung sein ?
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.
Freundliche Grüße,
[Link: Registrierung erforderlich]
Full Stack Software Engineer & Architekt
Sprachen: C#, TSQL, HTML5, Ecmascript 6, CSS 3.1, (TS, C++, PHP)
Frameworks: .NET, .NET Core, ASP.NET MVC, ASP.NET WebApi, WPF, WCF, Entity Framework, Bootstrap
|
|
12.02.2013 20:10 |
|
|
Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status:
offline
|
RE: Hilfe bei Webseiten Sicherheit
Ist lediglich ein kleines Projekt mit wenig Script.
Ich will lediglich das bei dem script nichts passiert was den usern oder meiner Datenbank schadet
|
|
12.02.2013 20:29 |
|
|
Beiträge: 462
Bewertung: 2
Registriert seit: Nov 2012
Status:
offline
|
RE: Hilfe bei Webseiten Sicherheit
Was ist das für ein kleines Script? Erweiterung für ein CMS? Was macht es?
Freundliche Grüße,
[Link: Registrierung erforderlich]
Full Stack Software Engineer & Architekt
Sprachen: C#, TSQL, HTML5, Ecmascript 6, CSS 3.1, (TS, C++, PHP)
Frameworks: .NET, .NET Core, ASP.NET MVC, ASP.NET WebApi, WPF, WCF, Entity Framework, Bootstrap
|
|
12.02.2013 20:35 |
|
|
Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status:
offline
|
RE: Hilfe bei Webseiten Sicherheit
Man kann sein Auto mit allen tuningsmaßnamen eintragen, die autos anderer user ansehen und die details sehen sowie liken
|
|
12.02.2013 20:42 |
|
|
Beiträge: 462
Bewertung: 2
Registriert seit: Nov 2012
Status:
offline
|
RE: Hilfe bei Webseiten Sicherheit
Na dass kann ja dann noch gerade so hier im Forum gepostet werden
Dann kann man sich dass ganze auch mal anschauen.
Freundliche Grüße,
[Link: Registrierung erforderlich]
Full Stack Software Engineer & Architekt
Sprachen: C#, TSQL, HTML5, Ecmascript 6, CSS 3.1, (TS, C++, PHP)
Frameworks: .NET, .NET Core, ASP.NET MVC, ASP.NET WebApi, WPF, WCF, Entity Framework, Bootstrap
|
|
12.02.2013 21:10 |
|
|
Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status:
offline
|
RE: Hilfe bei Webseiten Sicherheit
user.php
<?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
Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2013 21:33 von Fredix.
|
|
12.02.2013 21:17 |
|
|