1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

Log In

  • 14. August 2006 um 18:32
  • Gast
    • 14. August 2006 um 18:32
    • #1

    ich arbeite garde an einem eigenen forum und habe die ganze zeit angst dass mein login-system unsicher ist und wollte mal fragen was ihr konzept haltet:

    1. Username und Passwort werden eingegeben
    2. Prüfe ob Username und Passwort vorhanden sind
    3. Wenn Ja -> Zu Schritt 4, Wenn Nein -> Fehlermeldung
    4. Erstelle Session-ID
    5. Schreibe Session ID zusammen mit User-ID von dem User der sich eingelogt hat in eine Datenbank-Tabelle
    6. schreibe die selbe session-ID in einen cookie am lokalen rechner
    7. Bei jedem aufruf einer seite: suche cookie mit session-ID am rechner des nutzers, Wenn vorhanden -> zu schritt 8, wenn nicht->loggout
    8. suche die id in der datenbank, wenn vorhanden->zu schritt 9, wenn nicht->loggout
    9.hole user-ID und arbeite damit weiter

    sollte der benutzer den cookie löschen -> loggout
    wenn er sich wieder einloggt, schen ob die user-id in der session db vorhanden ist, wenn ja-> session -id ändern und neuen cookie schreiben, wenn nicht->normaler login


    ist dieses loginsystem sicher? oder gibts wo lücken?

  • BendOr
    Kaiser(in)
    Beiträge
    2.496
    • 14. August 2006 um 18:38
    • #2

    du solltest wenn dann auch noch die user-id mit in einen cookie schreiben
    oder einfach nur eine session machen, ohne cookies, php hat da ja eigene funktionen

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • GreenRover
    Forum Guru
    Beiträge
    4.787
    • 14. August 2006 um 21:33
    • #3

    die uid würde ich schon mal nicht in den keks schreiben und an sich ist das System schon recht gut durchdacht....

    must halt nur die recihweite des cookies gut begrenzen, damit man es nicht über eine andere Seite klauen kann.

  • Gast
    • 15. August 2006 um 02:07
    • #4

    hmm könnte denn eine andere seite was damit anfangen?

    wie macht phpBB es eigentlich?

  • Gast
    • 17. August 2006 um 03:28
    • #5

    ???

  • No0ob
    Kaiserliche Hoheit
    Beiträge
    1.500
    • 17. August 2006 um 07:28
    • #6

    Hast du dich gegen MySQL-Injection abgesichert?

  • Gast
    • 17. August 2006 um 20:23
    • #7

    gegen mysql-was??

  • BendOr
    Kaiser(in)
    Beiträge
    2.496
    • 17. August 2006 um 20:37
    • #8

    unerlaubten code zB über eine variable in dein mysql_query einfügen
    zB dein abfrage sieht so aus:
    select * from user where id = $bla
    und wenn er dann die variable $bla mit zB
    1; DROP TABLE user --
    dann is deine tabelle futsch ;)

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Gast
    • 18. August 2006 um 02:27
    • #9

    asoo wie schütz ich das am besten??

  • No0ob
    Kaiserliche Hoheit
    Beiträge
    1.500
    • 18. August 2006 um 02:43
    • #10

    such in wikipedia danach

  • Noob
    Teeny
    Beiträge
    45
    • 18. August 2006 um 07:43
    • #11

    Hier hast du mal ein Beispiel!

    Anstatt:

    Code
    $abfrage = "SELECT spalte1 FROM tabelle WHERE spalte2 = '".$_POST['spalte2Wert']."'";
    $query = mysql_query($abfrage) or die("Datenbankabfrage ist fehlgeschlagen!");

    Diese zb. verwenden:

    Code
    $abfrage = "SELECT spalte1 FROM tabelle WHERE 
               spalte2 = '".mysql_real_escape_string($_POST['spalte2Wert'])."'";
    $query = mysql_query($abfrage) or die("Datenbankabfrage ist fehlgeschlagen!");
  • Gast
    • 18. August 2006 um 13:04
    • #12

    und bei diesem code würde das so funktionieren:

    Code
    $sql = "SELECT * FROM portal_view WHERE view_id = \"mysql_real_escape_string($id)\" ";

    ???

  • No0ob
    Kaiserliche Hoheit
    Beiträge
    1.500
    • 18. August 2006 um 16:25
    • #13

    was? nein
    Du musst doch die Zeichenkette fuer eine FUnktion unterbrechen

    Code
    $sql = "SELECT * FROM portal_view WHERE view_id = ".mysql_real_escape_string($id).";
  • Gast
    • 18. August 2006 um 18:12
    • #14

    naja das dachte ich auch aber:

    Code
    $sql = "SELECT * FROM portal_view WHERE view_id = \"$id\" ";

    is problemlos möchglich...

  • BendOr
    Kaiser(in)
    Beiträge
    2.496
    • 18. August 2006 um 18:23
    • #15

    $id könnte aber auch den wert
    1" OR 1=1; DROP TABLE portal_view
    haben und damit alles löschen

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Gast
    • 19. August 2006 um 15:04
    • #16

    gibt es aigentlich auser dem noch was worum ich achten muss bei der foren-entwicklung??

Tags

  • forum
  • lokale
  • code
  • phpbb
  • benutzer
  • lücke
  • session
  • passwort
  • system
  • datenbank
  • angst
  • bank
  • mysql
  • portal
  • cookie
  • variable
  • sql
  • string
  • login
  • select
  • lokalen
  • log
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche