サービスが送信するメールのフッターにシングルクリックの「購読解除」リンクを提供したいのですが。
明らかに、多くのスパムスキャナーは電子メールをスキャンし、電子メールにあるリンクをたどってマルウェアのコンテンツをスキャンします。これまでに使用した回避策:
- 「購読解除」ページがHTTP GETを介してリクエストされた場合、ページの読み込み時にフォームを送信する簡単な確認フォームと少しのJSがレンダリングされます
- 「購読解除」ページがHTTP POST経由でリクエストされた場合、ユーザーの購読を解除します
このように、ユーザーは通常、フォームを1回クリックするだけで、「購読を解除しました」というメッセージが表示されます。JSが無効になっている場合でも、手動で確認フォームを送信できます。
問題は、Office365のATPなどの一部のスキャナーがページを開いて、その中でJSを実行することです。JSを実行することで、フォームを送信し、ユーザーを自動的に登録解除します。
自動送信JSロジックにチェックを追加することを検討しました。
- 特定のユーザーエージェントに対して自動送信しない
- 特定のクライアントIP範囲に対して自動送信しない
- マウス移動イベントで自動送信をトリガーする
しかし、これらはすべて、電子メールスキャナーが戦術を変更するときに壊れる可能性のある、脆弱な方法、せいぜいハックのように見えます。
私はこの問題が私の前に少し多くの人々を持っていると確信しています。シングルクリック機能をあきらめるだけでなく、合理的な回避策はありますか?
PS。RFC 8058のサポートを追加しましたが、ユーザーは引き続きフッターのリンクをクリックします。