この目標を達成するには、サードパーティと協力する必要があります。これは確かです。
ここでは、少なくとも 2 つの多かれ少なかれ実用的なアプローチを見ることができます。
(1) ある種の保護トークンをリンクに追加します。ベンダーは、暗号化された文字列またはハッシュを生成します。これには、2 人だけが知っている情報が含まれているため、暗号化を解除 (または同じハッシュを生成) して検証することができます。
ハッシュの例:
moment = DateConvert("local2utc", Now());
token = Hash("SecretSaultYouBothKnow" & DateFormat(moment, "yyyy-mm-dd") & TimeFormat(moment, "-HH-mm"));
このトークンはリンクとともに渡され、共有/漏洩を防ぐためにすぐに期限切れになります。
あなたの側でそれを生成して検証することができます。
これは生のアイデアであり、検証に問題が発生する可能性があり、さらにクライアントの無効なリンクを回避する可能性があります (「mm」マスクもスキップする可能性があります)。
暗号化/復号化された文字列も同様に機能します。両方とも、秘密鍵が必要です。
ところで、ベンダーは、サーバーの IP アドレスまたはその他の識別子を暗号化して、データベースと照合し、他のアクションを適用することができます。
(2) ベンダーは、着信リンクを検証するための単純な Web サービスをセットアップできます (0/1 または他の単純なもので応答できます)。
正確な実装は異なる場合があります。繰り返しになりますが、検証のために送り返す URL のトークンである可能性があります。
これは、Jason が提案したソリューションに似ています。ベンダーは、リンクのクリック時にサーバーからサーバーへの要求をサーバーに送信してから、リソースに再配置できます。ただし、クライアントが到着したときに最初のリクエストがすでに処理されていることを確認する必要があるため、これは複雑になる場合があります。
これらのアイデアが理にかなっていることを願っています。