Realizzare un sistema di login PHP sicuro [duplicato]

1

Sto creando un sito Web PHP che richiede il login dell'utente. Ha una funzione ricordami. Vorrei chiedere se il seguente approccio è sicuro?

  1. L'utente accede con nome utente corretto e passa (e ricorda l'opzione per me).
  2. Otterrò il suo userID, lo cancellerò e salverò quella stringa in un cookie con qualche chiave, come "usercookie"

Vorrei sapere se questo è sicuro. In caso contrario, qual è il modo migliore per farlo?

    
posta harveyslash 17.06.2015 - 13:43
fonte

2 risposte

2

Questo è relativamente sicuro, a condizione che tu usi SSL (HTTPS, usa ssllabs per verificare la sicurezza del tuo sito), e configuri il tuo cookie come specifico del dominio, abbia una data di scadenza non troppo lontana in futuro e sia " HTTP-only".

Usa mcrypt per la crittografia (in PHP c'è il supporto) e la chiave salt dovrebbe essere ragionevolmente lunga, e mantenuta SECRET, o cambia per ogni cookie (questo è un po 'più complicato).

Inoltre, considera quale sia la sensibilità delle informazioni che conservi per l'utente e valuta quali sarebbero le peggiori conseguenze se qualcuno ha rubato i dati dell'utente.

Per definizione, un sistema è sicuro se il costo dell'hacking è maggiore del valore intrinseco dei dati che possono essere rubati. Utilizza questa regola come discriminante per la tua valutazione della sicurezza, per determinare se dovresti preoccuparti di alcune tecniche più avanzate, se quelle elencate sopra fossero sufficienti.

Vale anche la pena ricordare che se il summenzionato non fosse abbastanza, probabilmente NON dovresti offrire ai tuoi utenti l'opzione "ricordami": le banche non lo fanno, per ovvi motivi.

    
risposta data 17.06.2015 - 17:28
fonte
1

Per iniziare con il tuo login, vorrei dire che la password deve essere archiviata in modo sicuro (probabilmente non è la tua preoccupazione principale).

Ogni volta che usi sessioni o cookie, sei vulnerabile a dirottamento di sessione . Ora su quel link, ci sono modi per prevenire anche il dirottamento di sessione.

Come:

Encryption of the data traffic passed between the parties by using SSL/TLS; in particular the session key (though ideally all traffic for the entire session). This technique is widely relied-upon by web-based banks and other e-commerce services, because it completely prevents sniffing-style attacks. However, it could still be possible to perform some other kind of session hijack.

Use of a long random number or string as the session key. This reduces the risk that an attacker could simply guess a valid session key through trial and error or brute force attacks

Quindi non è sicuro al 100%. Ci sono altri modi per impedirlo.

    
risposta data 17.06.2015 - 15:21
fonte

Leggi altre domande sui tag