Prendiamo ad esempio un semplice sistema di messaggistica. Gli utenti possono inviarsi reciprocamente messaggi personali. Durante la lettura di un messaggio personale inviato all'utente, l'URL sarà simile a http://www.example.com/messaging.php?mailid=453796451
. Vedo molti siti Web che recuperano dati utilizzando solo un identificatore univoco, come 45379451
in questo caso. Se qualcun altro conoscesse questo identificatore univoco, sarebbe in grado di leggere il messaggio privato inviato dall'utente A all'utente B.
Ora la mia domanda è se tale id passato tramite l'URL sia davvero sicuro? In questo caso l'id è composto da 8 numeri, il che significherebbe che un hacker dovrebbe provare 100.000.000 di numeri in un massimo, per leggere il messaggio privato. Ma se il database memorizza un milione di messaggi privati, l'hacker sarebbe in grado di leggere un messaggio privato all'incirca ogni 100 tentativi. È quindi una cattiva idea far sì che il sistema si basi solo sull'ID passato tramite l'URL, oppure è difficile controllare se l'utente corrisponda al destinatario del messaggio?
Attualmente sto programmando un sistema di messaggistica privato e mi stavo chiedendo quale sarebbe stata la migliore pratica per farlo.
Scusa se il mio titolo è un po 'fuorviante, non potrei pensare ad un altro modo per descrivere questo problema.