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