Sponsor-Board.de
Antwort schreiben  Thema schreiben 

Hilfe bei Webseiten Sicherheit

Verfasser Nachricht

Beiträge: 462
Bewertung: 2
Registriert seit: Nov 2012
Status: offline


Beitrag: #21
RE: Hilfe bei Webseiten Sicherheit

Dein Code ist eine tickende Zeitbombe!

PHP-Code:
//user.php
//Überprüfen ob User überhaupt vorhanden ist:
$user '';
if (isset (
$_GET['user'])) {
    
$user $_GET["user"];
}
/*ggf:
else
{
    die('Kein Benutzer Übergeben');
}
*/
//Daten Escapen
$sqlSecureUser mysql_real_escape_string($user);
$abfrage "SELECT * FROM login WHERE username = '$sqlSecureUser'";
$counter mysql_num_rows(mysql_query("SELECT * FROM bewertung WHERE username='$sqlSecureUser'"));

//eintragen.php
//Dass selbe Spiel: Überprüfen ob vorhanden, Escapen und SQL Query anpassen!
$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"];

//marke.php
//Selbes Spiel!
$markeb $_GET["b"];

//bewertung.php
//Und nochmals. Bei der IP bin ich mir nicht sich, ob dass der Client verändern kann. Musst du mal googlen, aber schaden kanns nicht
$ip=getenv("REMOTE_ADDR");
$user $_GET["user"]; 


Wenn du die Änderungen vornimmst sollte es safe sein, du wirst jedoch noch Fehlermeldungen erhalten wenn deine SqlAbfrage kein Ergebnis zurückliefert. Dies solltest du unbedingt abfangen.

Ansonsten hast du noch ein paar schönheitsfehler drinne!

- Strings werden generell mit Hochkomma und nicht Doppelten Anführungszeichen angegeben. (Performance!)
- Verwende $_SERVER für IP
- Bei den Bilderupload hätts auch eine Schleife getan
- EVA Prinzip
- ...


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 23:24
 
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status: offline


Beitrag: #22
RE: Hilfe bei Webseiten Sicherheit

Ich habe das ganze jetzt mal in meine Eintragen.php eingefügt.
Nun klappt das eintragen nicht mehr -.-
Woran liegt es? Es zeigt keine Fehlermeldungen an sondern bleibt einfach weiß

PHP-Code:
<?php
include 'heartbeat.php';
$username '';
if (isset (
$_POST['username'])) {
    
$user $_POST["username"];
}
else
{
    die(
'Kein Benutzer Übergeben');
}
$sqlSecureUsername mysql_real_escape_string($username);

$passwort '';
if (isset (
$_POST['passwort'])) {
    
$passwort $_POST["passwort"];
}
else
{
    die(
'Kein Passwort Übergeben');
}

$passwort2 '';
if (isset (
$_POST['passwort2'])) {
    
$passwort2 $_POST["passwort2"];
}
else
{
    die(
'Kein Passwort2 Übergeben');
}

$email '';
if (isset (
$_POST['email'])) {
    
$email $_POST["email"];
}
else
{
    die(
'Keine Email Übergeben');
}
$sqlSecureEmail mysql_real_escape_string($email);

$marke '';
if (isset (
$_POST['marke'])) {
    
$marke $_POST["marke"];
}
else
{
    die(
'Keine Marke Übergeben');
}
$sqlSecureMarke mysql_real_escape_string($marke);

$modell '';
if (isset (
$_POST['modell'])) {
    
$modell $_POST["modell"];
}
else
{
    die(
'Kein Modell Übergeben');
}
$sqlSecureModell mysql_real_escape_string($modell);

$bj '';
if (isset (
$_POST['bj'])) {
    
$bj $_POST["bj"];
}
else
{
    die(
'Kein Baujahr Übergeben');
}
$sqlSecureBj mysql_real_escape_string($bj);

$ps '';
if (isset (
$_POST['ps'])) {
    
$ps $_POST["ps"];
}
else
{
    die(
'Keine PS Zahl Übergeben');
}
$sqlSecurePs mysql_real_escape_string($ps);

$hubraum '';
if (isset (
$_POST['hubraum'])) {
    
$hubraum $_POST["hubraum"];
}
else
{
    die(
'Kein Hubraum Übergeben');
}
$sqlSecureHubraum mysql_real_escape_string($hubraum);

$color '';
if (isset (
$_POST['color'])) {
    
$color $_POST["color"];
}
else
{
    die(
'Keine Farbe Übergeben');
}
$sqlSecureColor mysql_real_escape_string($color);

$fahrwerk '';
if (isset (
$_POST['fahrwerk'])) {
    
$fahrwerk $_POST["fahrwerk"];
}
else
{
    die(
'Kein Fahrwerk Übergeben');
}
$sqlSecureFahrwerk mysql_real_escape_string($fahrwerk);

$felgen '';
if (isset (
$_POST['felgen'])) {
    
$felgen $_POST["felgen"];
}
else
{
    die(
'Keine Felgen Übergeben');
}
$sqlSecureFelgen mysql_real_escape_string($felgen);

$interieur '';
if (isset (
$_POST['interieur'])) {
    
$interieur $_POST["interieur"];
}
else
{
    die(
'Kein Interieur Übergeben');
}
$sqlSecureInterieur mysql_real_escape_string($interieur);

$ext '';
if (isset (
$_POST['ext'])) {
    
$ext $_POST["ext"];
}
else
{
    die(
'Kein Exterieur Übergeben');
}
$sqlSecureExt mysql_real_escape_string($ext);

$disc '';
if (isset (
$_POST['disc'])) {
    
$disc $_POST["disc"];
}
else
{
    die(
'Keine Beschreibung Übergeben');
}
$sqlSecureDisc mysql_real_escape_string($disc);


if(
$passwort != $passwort2)
    {
    echo 
"Eingabefehler.Passwörter sind nicht gleich! <a href=\"eintragen.html\">Zurück</a>";
    exit;
    }
$passwort md5($passwort);
$sqlSecurePasswort mysql_real_escape_string($passwort);

$result mysql_query("SELECT id FROM login WHERE username = '$sqlSecureUsername'";
$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
('
$sqlSecureusername', '$sqlSecurePasswort', '$sqlSecureEmail', '$sqlSecureMarke', '$sqlSecureModell', '$sqlSecureBj', '$sqlSecurePs', '$sqlSecureHubraum', '$sqlSecureColor','$sqlSecureFahrwerk', '$sqlSecureFelgen', '$sqlSecureInterieur', '$sqlSecureExt', '$sqlSecureDisc')";

$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 = '$sqlSecureUsername'";
    
$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 = '$sqlSecureUsername'";
    
$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 = '$sqlSecureUsername'";
    
$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 = '$sqlSecureUsername'";
    
$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 = '$sqlSecureUsername'";
    
$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>";
    }

?>

Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2013 14:11 von Fredix.

13.02.2013 14:10
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 462
Bewertung: 2
Registriert seit: Nov 2012
Status: offline


Beitrag: #23
RE: Hilfe bei Webseiten Sicherheit

Auf den ersten Blick sehe ich jetzt keinen Fehler.

Überprüfe mal ob der überhaupt hier reinspringt:
<?php if($menge == 0) ?>
Eine ein echo 'test'; hier ausgeben.

Wäre aufjedenfall erst mal hilfreich zu wissen, woran das liegt.


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

13.02.2013 16:41
 
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status: offline


Beitrag: #24
RE: Hilfe bei Webseiten Sicherheit

Bleibt beim gleichen Fehler

HTTP-Fehler 500 (Internal Server Error): Beim Versuch des Servers, die Anforderung zu verarbeiten, ist eine unerwartete Bedingung aufgetreten.

13.02.2013 22:33
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 2.492
Bewertung: 29
Registriert seit: Jul 2010
Status: offline


Beitrag: #25
RE: Hilfe bei Webseiten Sicherheit

error_log angucken
error_reporting(E_ALL)

Mit foreach kannst du auch alle POSTs und GETs aufeinmal mit nur einem Befehl prüfen und escapen lassen.


Mit freundlichen Grüßen / Best Regards
Julian Weiler | Geschäftsführender Gesellschafter

[Link: Registrierung erforderlich] ist außerdem bei [Link: Registrierung erforderlich], [Link: Registrierung erforderlich] und [Link: Registrierung erforderlich]

Telefon: +49 (0) 67 74 / 20 49 520
Fax: +49 (0) 67 74 / 20 49 520 9
E-Mail: [Mail: Registrierung erforderlich]

13.02.2013 22:37
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status: offline


Beitrag: #26
RE: Hilfe bei Webseiten Sicherheit

Kannst du mir ein Konkretes Beispiel geben?
Versuche aktuell mit dem Script PHP ein wenig zu lernen

13.02.2013 22:38
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 625
Bewertung: 7
Registriert seit: Aug 2010
Status: offline


Beitrag: #27
RE: Hilfe bei Webseiten Sicherheit

[Link: Registrierung erforderlich]

ich frag mich welche PHP Version du hast... eine 2faches Escaping wäre fatal Wink
Ich will ja niemanden anschauen, der den Tipp gegeben hat das zu benutzen Smile

versuch mal nach der mysql_query mit "echo mysql_error();"

13.02.2013 22:42
 
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status: offline


Beitrag: #28
RE: Hilfe bei Webseiten Sicherheit

Habe ich das nicht schon mit
$eintragen = mysql_query($eintrag)or die(mysql_error());
?

13.02.2013 22:45
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 625
Bewertung: 7
Registriert seit: Aug 2010
Status: offline


Beitrag: #29
RE: Hilfe bei Webseiten Sicherheit

Z.B.

Code:
$eintrag = "UPDATE login Set bild4 = '$datei4' WHERE username = '$sqlSecureUsername'";
    $eintragen = mysql_query($eintrag);

13.02.2013 22:47
 
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren

Beiträge: 398
Bewertung: 1
Registriert seit: Feb 2008
Status: offline


Beitrag: #30
RE: Hilfe bei Webseiten Sicherheit

Dahinter setzen?
Oder wie meinst du das jetzt?

13.02.2013 22:59
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Webseiten Speichervolumen eret12 9 1.259 11.02.2013 18:47
Letzter Beitrag: eret12

 Druckversion anzeigen
 Thema einem Freund senden
 Thema abonnieren
 Thema zu den Favoriten hinzufügen

Sponsor-Board.de

Community
Über uns
Partner
Powered by Mybb: Copyright 2002-2024 by MyBB Group - Deutsche-Übersetzung von Mybb.de
 
© 2007-2024 Sponsor-Board.de - Hosted by OVH

Willkommen auf SB!   Sie benötigen ein Sponsoring?   1. Anmelden   2. Sponsoring-Anfrage erstellen   3. Nachrichten von Sponsoren erhalten   Kostenlos!   Jetzt registrieren