Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Nach 3 erfolglosen Loginversuchen Sperre für XX Sekunden

  1. #1
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717

    Beitrag Nach 3 erfolglosen Loginversuchen Sperre für XX Sekunden

    So, da das an sich nicht viel Aufwand sein sollte, hier mal ne schnelle Anleitung dazu:

    SQL:

    Code:
    ALTER TABLE `vms_kontodaten` ADD `f_logins` TINYINT( 2 ) NOT NULL DEFAULT '0',
    ADD `f_time` INT( 11 ) NOT NULL ;
    datei lib/session.lib.php:

    suchen:
    PHP-Code:
        // Wenn es den User garnicht giebt    
        
    } else {
        
    $_GET['content'] = '/error/kein_zutritt';
        } 
    ersetzen:

    PHP-Code:
        // Wenn es den User garnicht giebt    
        
    } else {
        
    $_GET['content'] = '/error/kein_zutritt';
        
    db_query('UPDATE '.$db_prefix.'_kontodaten k, vms_userdaten u SET k.f_logins=k.f_logins+1, 

    k.f_time='
    .time().' WHERE u.nickname="'.$_POST['nickname'].'" AND k.uid=u.uid ');
        }
        
        } 
    jetzt werden schon mal falsche logins geloggt, und die dazugehörige zeit.

    dann suchen:

    PHP-Code:
    // Login
    if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) { 
    ersetzen mit:

    PHP-Code:
    // Login
    if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) {

        
    $f_check mysql_fetch_array(db_query('SELECT k.f_logins,k.f_time FROM '.$db_prefix.'_kontodaten k 

    LEFT join '
    .$db_prefix.'_userdaten u ON u.uid=k.uid WHERE u.nickname="'.addslashes($_POST['nickname']).'" 

    LIMIT 1'
    ));
        if(
    $f_check['f_logins']>&& $f_check['f_time']>(time()-600)){
        
    $_GET['content'] = '/error/kein_zutrit';
        }else{
        if(
    $f_check['f_logins']>2){
        
    db_query('UPDATE '.$db_prefix.'_kontodaten k, vms_userdaten u SET k.f_logins=0 WHERE 

    u.nickname="'
    .addslashes($_POST['nickname']).'" AND k.uid=u.uid ');
        } 
    kontne ich selber noch nicht testen, wäre nett, wenn das mal jemand macht und sein ergebnis hier postet

    funktionsweise:

    nach 3 maliger falscher eingabe des passworts zu einem vorhandenen usernamen kann man sich unter dem namen 10 minuten lang nicht mehr einloggen, egal ob richtiges passwort oder falsches.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  2. #2
    Erfahrener Benutzer Avatar von Hardy
    Registriert seit
    24.01.2007
    Beiträge
    2.235
    Super!
    Eignet sich besonders um BF Attacken zu erschweren!
    Werde ich leider erst am we testen können da ich momentan nur übern laptop online gehe.Aber einbauen auf jedenfall! Wäre eigentlich ein absolutes muss

    Aber eventuell noch die ip mitloggen bei falschen einlog versuch
    Ich nutze den Firefox nur um Opera Google Chrome runterzuladen

  3. #3
    Erfahrener Benutzer Avatar von halk
    Registriert seit
    15.11.2006
    Beiträge
    559
    Hallo

    Supi
    ich habe es bei mir jetzt drin ,scheint super zu funzen (jedenfalls kann ich mich nicht mehr anmelden GG. Muss jetzt warten

    aber jetzt fehlt da noch was und zwar ein hinweis damit auch jeder sehen kann was los ist zum Beispiel ein hinweis per mail oder so.

    Mfg halk
    Mfg Halk


  4. #4
    Erfahrener Benutzer
    Registriert seit
    20.06.2007
    Beiträge
    1.905
    Mach einfach nach dem user sich nicht einloggen können in dem teil session einfach per js dieses aufspriges script fenster oder du leitest den suer um so wie z.b. auf die seite da wo user keinen zutritt haben

  5. #5
    Erfahrener Benutzer Avatar von halk
    Registriert seit
    15.11.2006
    Beiträge
    559
    Hallo


    Danke habe mir jetzt zwei Datein geschrieben einmal mit hinweis und einmal das er gesperrt ist.

    ein kleiner Schreibfehler ist noch vorhanden ist aber nicht schimm

    PHP-Code:
    $_GET['content'] = '/error/kein_zutrit'
    Mfg Halk


  6. #6
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147
    rechjtschreibefehler im zweiten code steht

    PHP-Code:
     $_GET['content'] = '/error/kein_zutrit'
    müsste
    PHP-Code:
     $_GET['content'] = '/error/kein_zutritt'
    sein

    aber ich würde eine neue datei anlegen
    mit dem inhalt

    Datei in den ordner content/error/
    mit dem namen falscher_login.php
    HTML-Code:
    <?head("Zutritt verweigert");?>
    Der Zutritt zu diesem Bereich wurde Dir verweigert!<br>
    Es wurde 3 mal ein falsches Passwort eingegeben, <br>
    dadurch wurde dein Account bei uns gesperrt!<br>
    Dies dient zur Sicherheit!!<br>
    bitte warte eine kurze zeit der Account,<br>
     wird automatisch wieder freigeschaltet
    <?foot();?>
    und dan folgenden code verwenden

    PHP-Code:
    // Login
    if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) {

        
    $f_check mysql_fetch_array(db_query('SELECT k.f_logins,k.f_time FROM '.$db_prefix.'_kontodaten k 

    LEFT join '
    .$db_prefix.'_userdaten u ON u.uid=k.uid WHERE u.nickname="'.addslashes($_POST['nickname']).'" 

    LIMIT 1'
    ));
        if(
    $f_check['f_logins']>&& $f_check['f_time']>(time()-600)){
        
    $_GET['content'] = '/error/falscher_login';
        }else{
        if(
    $f_check['f_logins']>2){
        
    db_query('UPDATE '.$db_prefix.'_kontodaten k, vms_userdaten u SET k.f_logins=0 WHERE 

    u.nickname="'
    .addslashes($_POST['nickname']).'" AND k.uid=u.uid ');
        } 
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  7. #7
    habe folgendes Problem wenn man das Passwort nun falsch eingibt wird man zwar gesperrt und kann sich mit dem Nick nicht einloggen aber mit der Klammid kann man sich trotzdem noch einloggen.

  8. #8
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    ok, da die variante mit der klamm id nicht im grundscript drin ist, wurde die auch nicht bedacht...
    (der tippfehler war natürlich beabsichtigt, um euch zu zeigen, dass man hier ne eigene fehlerseite reinmachen soll )

    wenn du beide login möglichkeiten hast, musst du halt bei den datenbank abfragen immer ne "weiche" einbauen, also wenn der eingegebene "nickname" nur aus zahlen besteht, dann halt per uid=$_POST['nickname'], ansonsten so wie der code jetzt ist...

    PHP-Code:
        // Wenn es den User garnicht giebt    
        
    } else {
        
    $_GET['content'] = '/error/kein_zutritt';
    if(
    ctype_digit($_POST['nickname'])){
    db_query('UPDATE '.$db_prefix.'_kontodaten SET f_logins=f_logins+1, f_time='.time().' WHERE uid="'.$_POST['nickname'].'"');
    }else{
        
    db_query('UPDATE '.$db_prefix.'_kontodaten k, vms_userdaten u SET k.f_logins=k.f_logins+1, 

    k.f_time='
    .time().' WHERE u.nickname="'.$_POST['nickname'].'" AND k.uid=u.uid ');
    }
        }
        
        } 
    könnte man zwar auch noch per OR uid=... machen, und den andeern teil muss man natürlich auch noch ändern.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  9. #9
    Erfahrener Benutzer
    Registriert seit
    23.04.2009
    Beiträge
    155
    Eine Frage habe ich dazu noch. Gebe ich zb das Passwort einmal falsch ein und log mich dann mit dem richtigen Passwort ein. Dann reicht es beim nächsten mal 2x das Passwort falsch einzugeben bis man gesperrt ist. Könnte man da nicht so machen das nach einem erfolgreichen LogIn die Loginversuche wieder auf 3 zu setzen.

  10. #10
    Moderator
    Registriert seit
    07.07.2006
    Beiträge
    1.370
    Geht einfach, täglicher Cron der das Feld nullt wenn es nicht auf 3 ist.

    MfG

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. [S] Suche Sekunden Sparbch
    Von Paddy31986 im Forum Sonstiges
    Antworten: 2
    Letzter Beitrag: 27.10.2020, 20:50
  2. (S) Sekunden Sparbuch
    Von SilentRunner im Forum Scripte
    Antworten: 9
    Letzter Beitrag: 08.04.2017, 16:14
  3. Refralley - Refs sollen nach APs zählen nicht nach Umsatz
    Von Sledgedog im Forum [HD] Programmieren
    Antworten: 1
    Letzter Beitrag: 04.05.2009, 17:57
  4. [HTML/CSS/JS] Frame erst nach X Sekunden Laden
    Von bulli im Forum [HD] Programmieren
    Antworten: 3
    Letzter Beitrag: 10.09.2008, 20:28
  5. 0 sekunden Banner
    Von Dreamerweb im Forum Support zum VMSone
    Antworten: 6
    Letzter Beitrag: 19.01.2007, 01:19

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •