Interruzione del dirottamento della sessione

2

Se hai notato, ho messo "stop" invece di "impedire" nel titolo perché voglio che la mia applicazione PHP sia il più sicura possibile. Mi chiedo se qualcuno ha modi migliori per prevenire il dirottamento di sessione, quindi quello che ho già. Vorrei mantenere le misure di sicurezza nel mio codice PHP e non in nessuna delle impostazioni del server web.

Ecco cosa sto facendo adesso:

  • Quando un utente effettua l'accesso, session_regenerate_id () viene chiamato
  • Viene creata una variabile di sessione che memorizza l'indirizzo IP dell'utente che viene deciso da HTTP_X_CLUSTER_CLIENT_IP, HTTP_CLIENT_IP, HTTP_FORWARDED, HTTP_FORWARDED_FOR o REMOTE_ADDR (a seconda di quale si trova per primo)

Qualcuno ha qualche consiglio su che altro dovrei fare? Mi stavo chiedendo anche quale sia il metodo migliore per determinare l'indirizzo IP dell'utente in modo che non possa essere falsificato?

    
posta ub3rst4r 18.11.2012 - 03:19
fonte

1 risposta

4

Prima di tutto rimuovi tutti i controlli proposti. Si affidano a input controllati dagli aggressori per imporre restrizioni di sicurezza. Niente su questo è "sicuro", è semplicemente sciocco.

Lo spoofing dell'indirizzo IP su Internet è impossibile a causa del handshake a 3 vie , dovresti provare a studiare il networking, in realtà è piuttosto interessante. L'uso della variabile PHP HTTP_FORWARDED_FOR per la sicurezza è una violazione di CWE-291: attendibile l'indirizzo IP segnalato da personale .

Quindi, come si impedisce il "sequestro di sessione"? Impedisci all'utente malintenzionato di ottenere l'ID di sessione in primo luogo .

OWASP A9 - Protezione del livello di trasporto insufficiente e OWASP A2 - Cross-site scripting .

Imposta queste configurazioni di sessione PHP:

session.cookie_httponly = 1 (helps mitigate xss)
session.session.use_only_cookies = 1 (prevents session fixation)
session.entropy_file = "/dev/urandom" (better entropy source)
session.cookie_lifetime = 0  (smaller exploitation window for xss/csrf/clickjacking...)
session.cookie_secure = 1 (owasp a9 violations)
    
risposta data 18.11.2012 - 03:44
fonte

Leggi altre domande sui tag