Risposta semplice e semplice
NON COMPRENDERE MAI QUALSIASI TIPO DI INFORMAZIONI PERSONALI NELL'URL.
L'URL è estremamente facile da ottenere dall'esterno (ad esempio javascript, screenshot, ecc. ecc.) e non dovrebbe mai e poi mai includere informazioni personali. È come usare un numero di previdenza sociale come numero di targa.
Tecnicamente puoi bloccare gli scanner bruteforce aggiungendo assegni come se l'utente fosse nella sessione corrente e rifiutare la connessione se qualcuno sta tentando di accedere all'URL senza informazioni sulla sessione, ma non è ancora un buon approccio perché ti darà ancora un po ' sorta di risposta dal server. (per esempio, se si controlla solo la sessione ed echo che non si ha il permesso, questo vi darà 200 codici di risposta, e l'attaccante sarà in grado di notare che c'è QUALCOSA)
Trova altri modi per fornire il tuo servizio senza utilizzare le informazioni personali sull'URL.
Come suggerito di seguito, se decidi di cancellare le informazioni personali, ti preghiamo di usare più a lungo & più set di caratteri.
Se usi solo 6 caratteri alfabetici, ci vorranno circa 9 ore con attacco di forza bruta di Classe A, e la Classe F può romperlo istantaneamente.
Dai un'occhiata a questo sito web e assicurati di averlo corretto correttamente. Ma di nuovo, l'hashing non dovrebbe essere la soluzione definitiva.
EDIT:
Se non visualizzi informazioni personali sull'URL, potrebbe andare bene. Puoi semplicemente generare un link personale e inviarlo al tuo utente tramite SMS o email con autenticazione .
Ciò significa che, una volta che l'utente fa clic sul collegamento, porterà l'utente alla schermata di accesso. L'URL non dovrebbe significare nulla in questo caso, naturalmente.