È sufficiente proteggere una pagina di stato dell'ordine solo da un URL casuale?


11

Dopo che un cliente (aziendale) ha acquistato alcuni articoli nel nostro negozio online, inviamo un'e-mail con una panoramica di ciò che gli ha acquistato.

Vorremmo informare i nostri clienti sui pagamenti ricevuti, il monitoraggio dei pacchetti, ecc. Risolverei questo assegnando a ciascun ordine un ID casuale e aggiungere un collegamento ad ogni posta. Il link potrebbe essere così: http://shop.foo.bar/order/rwklvc46g9wt7kvy09f1

Adotteresti ulteriori misure per proteggere i dati? O scegli una soluzione completamente diversa?

vantaggi:

  • nessun aggiornamento di stato annying per posta (soprattutto se si verificano aggiornamenti frequenti)
  • singola fonte di informazioni (mai superata)
  • condivisibile (ad esempio al suo capo o colleghi)

svantaggi:

  • dati privati ​​esposti su siti Web accessibili al pubblico (ad esempio numeri di telefono, dettagli di pagamento)

4
Ciao Dan, benvenuto su Webmaster. Sembra che tu abbia creato due utenti identici (?) E modificato la tua domanda con l' altro "Dan" - per questo è in coda in attesa di approvazione. L'utente che pone la domanda può sempre modificare liberamente le proprie domande e fare commenti sulle risposte, ecc. L'altro "Dan" non ha abbastanza reputazione per fare una di queste due domande, perché non ha posto la domanda.
MrWhite,

Risposte:


8

Senza ulteriore sicurezza, no. Gli URL casuali vengono sottoposti a scansione per tutto il tempo. Tuttavia, questo è utile se fatto con una pagina di accesso per autenticare l'utente.

Una soluzione intermedia è assicurarsi che la pagina di stato non contenga dati personali, ma solo informazioni generali. Ad esempio, "PAGATO DA CC" anziché "PAGATO DA VISA 1234567891" e "Spedito" anziché "Spedito a John Doe, 123 Blue Street", ecc.


0

Penso che dovresti proteggere di più quei dati. Per quanto riguarda la semplicità del sistema, sono pienamente d'accordo sul fatto che gli URL pubblici con una stringa casuale e unica siano sufficienti e utili.

Tuttavia, se verranno visualizzati metodi di pagamento (inclusi i dati della carta di credito), e-mail o telefoni, è necessario proteggere tali dati. Dipende anche da quale parte del mondo sei, ma nella maggior parte di essi questa necessità si estende alle questioni legali e alla protezione dei dati dell'utente.

Ciò che la maggior parte dei siti Web di shopping fa per questo tipo di situazioni è chiedere credenziali (login / password) o un numero di tracciamento con un codice di tracciamento, o qualcosa che solo l'utente o le parti fidate dell'utente possono avere.


-1

Sì, basta che:

  1. devi solo inviare il link via e-mail e non inviarlo a Google. Ma secondo la tua domanda, questo è quello che fai, quindi Google non ha modo di conoscere il link per cui non verrà mai indicizzato / sottoposto a scansione.

  2. rendi l'ID utilizzato nel collegamento casuale e sufficientemente lungo. Se non è casuale, ma usi un semplice numero intero incrementale come ID, uno dei tuoi clienti potrebbe facilmente riconoscere che inserendo numeri progressivamente semplici nel link potrebbe leggere tutti gli altri ordini. Se è casuale, ma non abbastanza a lungo (diciamo che è composto solo da 4 cifre / lettere) sarebbe facile anche con un PC domestico attaccare con forza i tuoi ordini, avrei solo bisogno di provare (26 + 10) ^ 4 = 1.679.616 combinazioni possibili. Diciamo che eseguo uno script che prova un link al secondo, ci vorrebbe meno di 20 giorni per forzare brutalmente tutti i link possibili e leggere tutti i tuoi ordini.

  3. IMPORTANTE: per una maggiore sicurezza è necessario eliminare il collegamento dopo un certo numero di giorni (ovvero dopo 1 mese). Questo è il trucco per renderlo sicuro. In questo modo, anche se qualcuno cerca di forzare i tuoi collegamenti, avrebbe bisogno di un'enorme potenza di calcolo, altrimenti il ​​suo attacco non sarà mai abbastanza veloce da provare tutte le possibili combinazioni prima che vengano cancellate. E anche se ha un'enorme potenza di calcolo, difficilmente sarebbe in grado di testare più di un collegamento al secondo perché il server che gestisce i tuoi ordini potrebbe iniziare a rifiutare la sua connessione se tenta di connettersi ripetutamente una volta al secondo. Cordiali saluti: eliminazione del collegamento, non significa che è necessario eliminare tutto l'ordine nel DB. È possibile utilizzare un'altra chiave primaria per la tabella degli ordini (un semplice int di incremento automatico) e utilizzare un campo UNIQUE (che consente NULL) chiamato link_id che è quello inserito nel collegamento. Dopo un mese devi semplicemente eliminare il valore di link_id e impostarlo su NULL. In questo modo l'ordine sarà ancora nella tabella e sarà visualizzabile dal tuo pannello di amministrazione, ma il link diretto non sarà più valido per visualizzare direttamente la pagina dell'ordine.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.