質問: * 無知の私の考えでは、api側で対象のOriginをすべて保持し、api側のソースコード内で、HttpRequestのリクエストヘッダのOriginヘッダを取得し、対象のOriginに含まれるかどうかを判定し、trueの場合apiを実行する、という考えしか思い浮かびません。。。(そもそもOriginヘッダの書き換えできるなら、悪意のあるサイトは弾けませんが・・・)
回答: CORSとプリフライトって、通常は通信出来ないクロスドメインな通信を安全に許可するための仕組みであって、サーバ側のセキュリティに寄与するものでは無いです。 オリジン間リソース共有 (CORS) https://developer.mozilla.org/ja/docs/Web/HTTP/CORS > > Cross-Origin Resource Sharing (CORS) は、追加の HTTP ヘッダーを使って、あるオリジン (ドメイン) で動いているウェブアプリケーションが、異なるオリジンのサーバーのリソースにアクセスできるようにする仕組みです。 > > > そのため、通常のHTTPリクエストに対する認証やアクセス制限と同様の方法でアクセス制限をかける必要があります。 (クロスドメインの場合、cookieの扱いは注意が必要ですが。) > > 無知の私の考えでは、api側で対象のOriginをすべて保持し、api側のソースコード内で、HttpRequestのリクエストヘッダのOriginヘッダを取得し、対象のOriginに含まれるかどうかを判定し、trueの場合apiを実行する、という考えしか思い浮かびません。。。(そもそもOriginヘッダの書き換えできるなら、悪意のあるサイトは弾けませんが・・・) > > > HTTPリクエストヘッダーはHTTPクライアントが生成するものであり、自由に捏造可能です。 特定のリファラーやUAからしかアクセス出来ないようなページを用意したとしても、 簡単に突破可能なのと同じで、悪意を持ったリクエストを防ぐ手段にはなりません。