Visualizzazione dei risultati da 1 a 7 su 7

Discussione: sicurezza di un login

  1. #1
    Utente di HTML.it L'avatar di nick03
    Registrato dal
    Apr 2008
    Messaggi
    121

    sicurezza di un login

    volevo sapere se ci sono alcune accortezze per fare in modo che un form login risulti sicuro.
    Allora la parte php che riceve i dati dal form controlla username e pass (ovviamente criptata nel database).
    ok fino a qui, questa parte di sicurezza la conosco...
    ma esistono altre piccole accortezze da usare?

    tipo... ho visto che alcuni login passano alla pagina richiamata dal form direttamente la password sotto hash...
    come fanno?

    ci sono altre cose?

  2. #2
    Come detto in altri topic (basta cercare nel forum nella sezione php tutte le discussioni di php ed aprire quelle relative ai login).

    1) Dovresti filtrare tutti i campi form. (Tramite filter_var o preg_match)

    2) Per il tuo caso devi solo cercare l'attinenza sul database di due dati contemporaneamente

    3) Devi filtrare l'output (Questa non l'ho capita benissimo, viene detto che è possibile tramite output non filtrati permettere ad hacker di ottenere alcune informazioni, in tal caso suppongo che il "filtrare" l'output sia equivalente a mettere la funzione @ davanti alle funzioni (base e non) per sopprimere l'errore di php eventuale).

    Per i restanti punti o anche per quelli scritti da me lascio la parola ad altri.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    Per quanto riguarda il problema della password purtroppo non c'è soluzione.

    Se fai viaggiare la password in chiaro, qualcuno potrebbe "sniffarla" e venirne a conoscenza.

    Se la fai viaggiare già criptata (criptandola con javascript) è la stessa cosa: qualcuno potrebbe "sniffarla" e venire a conoscenza del valore presente nel db.

    Ma sniffare in internet è talmente difficile che non è questo il grande problema (semmai il problema potrebbe essere in una rete locale).

    Le accortezze che puoi prendere sono diverse. Innanzi tutto filtra e controlla tutti i dati: sia lato client che lato server.

    Controlla che il nome utente abbia solo i caratteri che vuoi accettare. Idem per la password.

    Poi prendi alcune accortezze per evitare attacchi del tipo sql injection, ossia evita che qualcuno male intenzionato possa inserire nel campo password delle istruzioni mysql in modo da far risultare la query sempre vera e quindi avere accesso con qualunque nome utente. Se questo punto ti interessa fammi sapere che ti mando qualche link.
    Jekkil

  4. #4
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    la sicurezza di un login non è data solo dall'autenticazione o crypting dei dati inseriti in un form...Pensate anche alle sessioni ,come validarle , come proteggerle , dove memorizzarle.Pensate a come convalidare un cookie ,pensate a come evitare lo spoofing di un form , pensate alla sanitizzazione delle variabili , è un argomento molto complesso che va studiato a dovere

  5. #5

    Consiglio

    Allora, l'unico consiglio che posso darti per avere degli input sicuri e tranquilli, è quello di fare una sorta di "escape".

    Molto semplicemente, nel file ove ci sono i dati del database, aggiungigli sotto questo :

    Codice PHP:
    function escape($string)
        {
            
    $clean=htmlentities(htmlspecialchars(strip_tags(addslashes(trim($string)))));
            
    $clean htmlspecialchars($cleanENT_QUOTES'UTF-8');
            return 
    $clean;
        } 
    Poi nel file del login, nel momento in cui richiami gli input in variabili, esegui ciò :

    Codice PHP:
    $user=escape($_POST['utente']); 

    Fino ad ora è la protezione forse, più sicura che ho elaborato.
    ----------------WorldHosting

  6. #6
    Stai consigliando di filtrare i valori in questo modo prima di salvarli nel database?

    function escape($string)
    {
    $clean=htmlentities(htmlspecialchars(strip_tags(ad dslashes(trim($string)))));
    $clean = htmlspecialchars($clean, ENT_QUOTES, 'UTF-8');
    return $clean;
    }

  7. #7

    Quote

    Esattamente
    ----------------WorldHosting

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.