私はセットアップを持っています
- ユーザーが私のサイトにログオンする場合としない場合があります。
- ユーザーがサードパーティのサービスにフォームを送信し、
- サードパーティのサービスがその役割を果たし、サイトで「webhook」を呼び出して、すべての
$_POST
データを転送します。
したがって、説明するために:
+---------------------+ +---------------------------+
| mysite.com/form.php |-------->| thirdparty.com/submit.php |
+---------------------+ +---------------------------+
|
v
+---------------------------+
| mysite.com/webhook.php |
+---------------------------+
フォームの送信時にユーザーがログオンしていた場合、Webhook でこの事実をどのように伝えて認証できますか?
たとえば、非表示フィールドを単純に設定できます。
<input type="hidden" name="loggedOn" value="true" />
しかし、誰でもそれを偽装できます。ユーザーのパスワードハッシュを通過するかもしれないと思ったのですが、
<input type="hidden" name="passwordHash" value="$2a$08$Lg5XF1Tt.X5TGyfb43vBBeEFZm4GTXQhKQ6SY6emkcnhAGT8KfxFS" />
Webhook を効果的に「ログイン」させますが、ユーザーのパスワード ハッシュがクライアント側に公開されるため、これは正しくありません。
セッションメカニズムを使用してこれを行うには、より良い方法があるに違いないと思いますが、セッションは初めてです。おそらく、適切な語彙が不足していますか?誰かが私を正しい方向に導いてくれますか? ありがとう!
編集:
さらに調査した結果、正しい方法は、非表示のフォーム フィールドsid
をセッション ID に設定session_id()
して Webhook に渡すことであると考えています。Webhook は、セッション ID を使用してセッションを続行しsession_id($_POST['sid']); session_start();
ます。私の質問は、これが標準的な(そして安全な)解決策であるかどうかです。