Ankündigung

Einklappen
Keine Ankündigung bisher.

Sicherheit bei Formularen und Datenbanken

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Arco2726
    hat ein Thema erstellt Sicherheit bei Formularen und Datenbanken.

    Sicherheit bei Formularen und Datenbanken

    Hallo alle zusammen,

    ich bin wieder dabei eine neue Seite für meine Firma zu schreiben.
    Dabei muss man sich mit Benutzername und Passwort einloggen.
    Soweit auch alles schön und gut. Nun mache ich mir Gedanken zum Thema Sicherheit.

    Ich hatte vor einem oder zwei Jahren mal was über MySql Injection gelesen.
    Damit der Angreifer es nicht ganz so einfach hat, sollte man ( wenn ich es richtig verstanden habe ) alle Daten die über ein Formular übergeben werden mit mysql_real_escape_string "schützen"

    Ich habe es so versucht :

    PHP-Code:
    $benutzer mysql_real_escape_string($_POST["benutzer"]) 
    Wenn ich nun $benutzer mit echo ausgeben möchte, ist die Variable leer ....

    Laut meinem Provider nutze ich php 5.3.
    Was mache ich falsch und wie verhindere ich eine MySql Injection ???

    Gruß

    Roland

  • mermshaus
    antwortet
    Etwas mehr Konzentration bitte…

    Einen Kommentar schreiben:


  • Cnodex
    antwortet
    Verusch es mit sprintf

    PHP-Code:
    <?php
    require_once 'dbVerbindung.php'

    $username $_POST['username']

    $sql sprintf("SELECT * FROM userdata WHERE username ='%s'",
              
    mysql_real_escape_string("$username");

     <?

    beste Grüße

    Einen Kommentar schreiben:


  • mermshaus
    antwortet
    Es. Besteht. Keine. Datenbank. Verbindung.

    Das kannst du aber wie gesagt simpel durch Debugging ermitteln.

    Einen Kommentar schreiben:


  • Arco2726
    antwortet
    Zitat von lstegelitz Beitrag anzeigen
    Dann war wohl schon die POST Variable leer.

    Ganz simpler Test (Datenbankverbindung muss bestehen):
    PHP-Code:
    $benutzer mysql_real_escape_string("Scarlet O'Hara");
    var_dump($benutzer); 
    Hallo lstegelitz.

    Die Variable war nicht leer. Wenn ich das ohne "mysql_real_escape_string" mache zeigt er mir die Variable an.

    Aber egal, ich werde mir eure Links genau ansehen. Vielen dank dafür an alle.

    Gruß

    Roland

    Einen Kommentar schreiben:


  • mermshaus
    antwortet
    Zitat von lstegelitz Beitrag anzeigen
    Datenbankverbindung muss bestehen
    Wird wohl daran liegen, dass keine besteht. Dann dürfte mysql_real_escape_string bool(false) liefern, was bei Ausgabe zum leeren String wird.

    Solche Fehler sind vermeidbar, wenn das Error-Reporting passend eingestellt ist. Siehe etwa:

    - http://phpforum.de/forum/showthread.php?t=216988
    - http://php-de.github.io/#debugging

    Ansonsten wurde wohl alles gesagt.

    Insgesamt sind die aktuellen Threads von HeinrichK sicher ganz interessant.

    - http://www.php.de/search.php?do=find...&starteronly=1

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Zitat von Arco2726 Beitrag anzeigen
    PHP-Code:
    $benutzer mysql_real_escape_string($_POST["benutzer"]) 
    Wenn ich nun $benutzer mit echo ausgeben möchte, ist die Variable leer ....
    Dann war wohl schon die POST Variable leer.

    Ganz simpler Test (Datenbankverbindung muss bestehen):
    PHP-Code:
    $benutzer mysql_real_escape_string("Scarlet O'Hara");
    var_dump($benutzer); 

    Einen Kommentar schreiben:


  • VPh
    antwortet
    http://php-de.github.io/jumpto/sql-injection/
    auch wichtig: http://php-de.github.io/jumpto/kontextwechsel/
    bzw. generell alle Artikel unter: http://php-de.github.io/#security

    Noch ein Post zu Kontextwechsel
    http://www.php.de/php-einsteiger/113...tml#post832379

    mysql_real_escape_string() gehört übrigens zur alten mysql-Extension:
    Die mysql_* Erweiterung ist veraltet
    Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
    Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm

    Einen Kommentar schreiben:

Lädt...
X