今回はdeeplinkにおけるstateパラメーターのチェックについてお話します。
OAuth周りでstateパラメーターのチェックをすることがあります。
stateについては以下を参照してください。
[OAuthやOpenID Connectで使われるstateパラメーターについて]
https://tech-lab.sios.jp/archives/8492
リダイレクトする際に注意することも多いと思いますが、アプリのdeeplinkでauth_codeとか送る際にも同様のことが言えます。
hoge://success?auth_code=XXX
みたいにauth_codeのみdeeplinkで送っていた場合、攻撃者が自分のauth_codeをdeeplinkで送り込んだりできてしまうためです。
そのため、deeplinkでもstateを送り
hoge://success?auth_code=XXX&state=YYY
アプリ内部で発行したstateと一致することチェックすることで攻撃者が自分のauth_codeをdeeplinkで送ることを防げます