9
独自のレート制限APIをドッグフーディングする
概要: 私の会社はレート制限されたAPIを開発しました。私たちの目標は2つあります。 A:製品の周りに強力な開発者エコシステムを作成します。 B:APIを使用して独自のアプリケーションを駆動することにより、APIの能力を実証します。 明確化:なぜレート制限を行うのか? APIは、製品への追加として販売するため、レート制限を行っています。APIへの匿名アクセスでは、1時間あたりのAPI呼び出しのしきい値が非常に低くなっていますが、有料のお客様は1時間あたり1000以上の呼び出しを許可されています。 問題: 私たちのレート制限APIは、開発者のエコシステムに最適ですが、ドッグフードを行うために、同じレート制限に制限することはできません。APIのフロントエンドはすべてJavaScriptであり、APIへの直接のAjax呼び出しを行います。 だから問題は: どのようにAPIを保護して、レート制限を削除できるようにしますか? 探索されたソリューション(およびそれらが機能しなかった理由) ホストヘッダーに対してリファラーを確認します。- リファラーが簡単に偽造されるため、欠陥があります。 HMACを使用して、要求と共有秘密に基づいた署名を作成し、サーバーで要求を確認します。- シークレットとアルゴリズムは、フロントエンドのJavaScriptを調べれば簡単に判断できるため、問題が発生します。 リクエストをプロキシし、プロキシでリクエストに署名する- プロキシ自体がAPIを公開しているため、まだ欠陥があります。 質問: Stack Overflowの優れた頭脳に代替ソリューションを提示することを期待しています。この問題をどのように解決しますか?
117
javascript
api
rest