Email per l'annullamento della gestione della sicurezza

13

C'è un'altra domanda con titolo simile: Annulla iscrizione in modo sicuro tuttavia la mia domanda riguarda completamente un altro problema.

Sto provando a configurare un sistema di notifica nel sito web, che invierà e-mail agli utenti in base a diversi eventi sul sito web, potrebbe essere ad es. ricevere messaggi sul posto da un altro utente, qualcuno che acquista il tuo prodotto, lasciare un feedback, ecc. - ci sono molte cose che potrebbero far scattare una notifica. Gli utenti dalle impostazioni dell'account possono scegliere per quali eventi esatti desiderano ricevere un'email.

Stavo leggendo le migliori pratiche via e-mail di mailgun link

e l'ho imparato

It is important to give you recipients the ability to unsubscribe from emails. First, it is required by the CAN-Spam Act. Second, if you don’t give them this option, they are more likely to click on the spam complaint button, which will cause more harm than allowing them to unsubscribe. Finally, many ESPs look for unsubscribe links and are more likely to filter your email if they don’t have them.

Inoltre, dalle linee guida di Gmail sull'annullamento dell'iscrizione link

A user must be able to unsubscribe from your mailing list through one of the following means:

A prominent link in the body of an email leading users to a page confirming his or her unsubscription (no input from the user, other than confirmation, should be required). By replying to your email with an unsubscribe request.

Quindi, desidero avere l'opzione di annullamento dell'iscrizione nell'e-mail. Non preferirei davvero utilizzare la seconda opzione (Rispondendo alla tua e-mail) in quanto potrebbe avere alcune difficoltà tecniche (ad es. Devo digitare il tipo di notifica nella e-mail di risposta, controllare regolarmente l'e-mail per posta elettronica e forse anche altro non pensato a). Sto pensando di avere un link di annullamento dell'iscrizione nell'e-mail e poiché le loro impostazioni di notifica possono essere modificate solo dopo aver effettuato l'accesso, sono in contraddizione con il no input from the user, other than confirmation, should be required point di gmail.

Quindi, mi sembra di avere un URL "pubblico" per modificare le loro impostazioni di notifica. Da quando ho letto e utilizzato per gestire casi simili - ad es. quando si conferma l'e-mail o il recupero della password, sto inviando un'e-mail che nell'URL contiene solo hash generato casualmente (sha512), NON in alcun modo che rivela le informazioni dell'utente, che scade in meno di 1 ora (ho usato per mettere 15 minuti).

Ora, in caso di link di cancellazione, anche se includo l'hash casuale (e forse anche l'id del tipo di notifica), che è legato all'utente nel database, perché è pubblico, se l'email / link è accidentalmente condiviso o pubblicato da qualche parte, qualcun altro può modificare le preferenze di notifica dell'utente. D'altra parte, generare hash casuali con ogni notifica e salvare nel db, anche espirarli dopo un po 'di tempo suona eccessivo per me, anche considerando che alla scadenza, se l'utente fa clic sul link di annullamento dell'iscrizione nella vecchia e-mail, non funzionerà .

Non sono riuscito a trovare alcuna informazione utile là fuori, quindi sto cercando alcuni consigli su come affrontare in modo corretto e sicuro l'annullamento dell'iscrizione all'utente in generale e, in particolare, in casi simili ai miei. Qualsiasi aiuto è molto apprezzato.

Grazie

    
posta dav 28.02.2016 - 13:06
fonte

3 risposte

16

Questo è un buon esempio per un caso in cui usabilità e sicurezza non vanno di pari passo.

Un utente vuole usabilità: vogliono poter fare clic sul link e essere annullati. Vogliono che funzioni sempre (non solo X quantità di tempo dopo aver ricevuto l'e-mail, e sicuramente non con X che è di 15 minuti o un'ora).

Vuoi sicurezza: non vuoi che un utente malintenzionato sia in grado di forzare l'annullamento della sottoscrizione ai tuoi utenti.

Ora analizziamo queste esigenze:

Usabilità

L'usabilità è piuttosto importante. Se non autorizzi facilmente l'annullamento dell'iscrizione:

  • il tuo marchio subirà un danno dell'immagine
  • le tue email saranno considerate come spam
  • stai violando la legge CAN-SPAM (vedi ad esempio qui : The law also requires that the unsubscribe mechanism must be able to process opt-out requests for at least 30 days after the transmission of the original message )

Sicurezza

Quindi stai utilizzando un token casuale generato in modo sicuro, lungo, il che significa che un utente malintenzionato non può semplicemente forzare il tuo modulo di annullamento della sottoscrizione per annullare l'iscrizione a gran parte dei tuoi utenti.

Al massimo, un utente malintenzionato può annullare l'iscrizione a singoli utenti dopo aver in qualche modo rivelato il proprio token di annullamento dell'iscrizione.

Quindi cosa si deve veramente preoccupare? Nessun utente malintenzionato utilizzerà il social engineering per ottenere il token di annullamento dell'iscrizione degli utenti. Inoltre, non inseriranno l'e-mail dei tuoi utenti o del tuo database solo per cancellarli dalla tua newsletter.

Quindi l'unico scenario di attacco probabile è: un utente posta per sbaglio la tua newsletter, incluso il suo token di annullamento dell'iscrizione a un sito web. Qualcuno lo vede e decide di annullare l'iscrizione a quell'utente.

Ciò potrebbe causare un piccolo fastidio a te e probabilmente all'utente, ma è uno scenario che è improbabile che accada spesso.

Conclusione

Un token casuale generato correttamente è sufficiente per un link di annullamento dell'iscrizione.

I pericoli di questo gettone rivelati sono bassi, e l'utilizzo di qualsiasi altro meccanismo (come richiedere login o espirare il token dopo poco tempo) non è generalmente accettabile.

Al massimo, potresti scartare un token dopo 30 giorni. Ma ciò significa anche che devi avere più di un token per utente.

    
risposta data 28.02.2016 - 15:29
fonte
0

Perché non è possibile "annullare l'iscrizione" per collegare gli utenti diretti a una pagina protetta dai normali metodi di autenticazione?

Forse link dove è qui che i messaggi di posta elettronica possono essere attivati / disattivati.

Questo sarà sicuro quanto il resto delle opzioni delle preferenze dell'utente, è semplice da raggiungere (presumendo che l'utente sia in grado di richiamare i dettagli di accesso) e abiliterà le abilità più dettagliate per regolare le impostazioni della posta elettronica (ad es. digest giornaliero / settimanale) in contrapposizione al binario subscribe / unsubscribe.

    
risposta data 29.02.2016 - 00:22
fonte
0

Potrei mancare qualcosa, ma non penso che tu abbia bisogno di fare comunque la cosa dell'iscrizione.

I requisiti e le migliori pratiche relativi alla funzione di annullamento dell'iscrizione semplice si riferiscono a servizi che sono essenzialmente un servizio di posta elettronica, ad es. una mail list, e-mail promozionali dai venditori ecc.

Nel tuo caso, stai parlando di notifiche inviate ai tuoi utenti e hai dichiarato che possono controllare le notifiche tramite la loro pagina delle impostazioni dell'account. In sostanza, hai già dato loro il controllo e la possibilità di disiscriverti. Tutto quello che devi fare è aggiungere un link nella parte inferiore delle e-mail di notifica all'URL per la pagina delle impostazioni dell'account. Lavoro fatto.

    
risposta data 04.03.2016 - 03:24
fonte

Leggi altre domande sui tag