Grazie, non mi aspettavo una risposta così celere:
Per ...dopo 30 tentativi sbagliati non si potrà più provare ad entrare perché bypasserà la verifica e darà sempre il risultato di user o password non corretti, almeno che non si chiude il browser e poi lo si riapre ecc..
pensavo fosse in grado di ingannare proprio i tentativi di intrusione tramite forza bruta, non capisco cosa intendi per "mantengono le sessioni", comunque la rigenerazione della sessione non centra con i tentativi di attacco tramite forza bruta.
Quale soluzione conosci altrimenti?
Per ...Una volta che il controllo dei dati di login corrispondono genera un record in una tebella separata da quella che contiene i dati per l'accesso all'area riservata e vi memorizza:
- l'id di sessione
- L'username
- Il valore non criptato della password che ha autogenerato lo script (valida solo per la sessione)
- l'ivello dell'amministratore e il suo id record della tabella per il login
- Data inizio login in valore intero tramite time()
Poi genero le variabili di sessione con user, password (valida solo per la sessione) e altre cose secondarie, che servono per navigare liberamente nell'area riservata dato che una volta fatto il login ad ogni pagina dovranno corrispondere all'interrogazione del database:
- id di sessione che si utilizza
- user e valore criptato della password memorizzata nella sessione.
Serve a non far girare dati utili nelle variabili di sessione.
Per ... Inoltre tutto avviene nella stessa pagina form e controllo dei dati senza nessun redirectory; in caso di refresh che può rigenerare l'accesso ho messo un campo nascosto che si prende i valorimicrotime che poi verranno memorizzati in un campo della tabella login, e se questi sono uguali o inferiori bypassa il controllo e da esito negativo...
Non volevo fare nulla che fosse meglio di redirect, ma visto che ho voluto fare tutto nello stesso file era un accorgimento inevitabile, più che altro mi piacerebbe essere certo se ha lo stesso valore di sicurezza di redirect.
Per
...Citazione:
Originariamente inviato da Corvus
Il tallone di achille di questo sistema è che se si riescie ad intercettare la sessione si potrebbe accedere nell'area riservata con gli stessi permessi finché lasessione è valida.
Se quello è il problema, ti basta salvare in sessione l'IP dell'utente, il suo user agent ed eventuali altri dati che si presume non cambino nell'arco della sessione e verificarli ad ogni richiesta di accesso "privilegiato".
Grazie molto del consiglio, anche se già lo sapevo, poi ritengo che è meglio non usare l'IP e magari basta anche solo user agent o meglio un valore criptato di user agent, ma quello volevo dire solo era uno dei "tallone di achile" del complesso.