同一ドメインの別ポートで公開されているページ上の JavaScript から WebAPI を実行します。
別ポートでホストされるページは第三者のページなので、CSRF が考えられます。
CSRF 対策としてトークンを二重送信する方式を使うことを考えています。
しかし Cookie はポートが異なっているだけでは共有されてしまいます (RFC6265) ので、
1.Cookie で TOKEN_xxxx(ポート番号) を受け取る。(JavaScriptから読み出せないようにするためhttponly)
2.JavaScript は事前に XHR でオリジンから CSRF トークンを受け取る。(レスポンスから取るのは事情があり別読み込み)
3.ホストはプリフライト(OPTIONS)にはエラーを返す。(クロスオリジンでは2のアクセスができなくなるという理解)
とすることを考えました。
ホストでは POST リクエストヘッダのトークンと、自ポートに対応した Cookie のトークンを突き合わせます。
WEBセキュリティは経験不足なので、これで良いのか不安です。
スレ立てるまでもない質問はここで 152匹目
■ このスレッドは過去ログ倉庫に格納されています
325デフォルトの名無しさん
2020/01/13(月) 12:07:55.93ID:evkq1+YN■ このスレッドは過去ログ倉庫に格納されています