apiKeyがクライアント側に存在します。プロバイダーはアプリが読み込まれる際にブートストラップ (/waas/config) に渡します。これはクライアント側SDKにとって想定される動作です。公開されたキーが悪用されないようにすることが重要です。
公開は請求を回避するものではありません。 埋め込まれたウォレットが署名する瞬間にすべての署名が測定され、APIキー層ではありません。ドメインにロックされたキーが漏洩しても、他のサイトで無料署名を作成したりクレジットを浪費したりすることはできません。測定はキーの秘密に依存しません。
1. ドメインを制限してキーを保護する(必須)
アプリが稼働するオリジンにキーをロックします。一度設定すると、他のオリジンからのリクエストは拒否され、バンドルから抽出されたキーは自分のドメイン以外では無効になります。1
RPCアクセス制御を開く
ダッシュボードで、RPCsセクションの下にあるキーに移動してアクセス制御を開きます。
2
許可されたドメインにドメインを追加する
アプリが配信されるすべてのオリジンを追加します—本番、ステージング、プレビュー:
3
環境ごとに別々のキーを使用する
ローカル、ステージング、本番用に異なるキーを保持し、1つをローテーションしても他のものを停止させないようにします。
2. Secure RPC URLs(自動)
RPCトラフィックのために、SDKはブートストラップ時にプロジェクトのキーなしSecure RPC URLsを解決し、それらをconnection呼び出しに使用します。このため、APIキーはRPCリクエストに含まれません。設定する必要はなく、デフォルトで有効です。
セキュアURLはIPごとに5RPSにレート制限され、有料プランで利用可能です。
3. ルートハンドラーでトラフィックをサーバーサイドに移行
SDKは、RPC、送信、トランザクション履歴の呼び出しを自分のサーバー経由で転送し、サーバー側の環境変数からキーを挿入するNext.jsルートハンドラーを提供しています(HELIUS_API_KEY)。これにより、キーはそのリクエストで使われることはありません。これはまた、送信トランザクション用の送信者最適化やトランザクション履歴を活用する方法でもあります。
app/api/helius/[...path]/route.ts
HELIUS_API_KEYをサーバーの環境変数として設定し、ハンドラーが転送リクエストにそれを添付します。クイックスタート → サーバールートハンドラーを参照してください。
ブートストラップはクライアントの
apiKeyを依然として使用します。これはプロバイダーconfigに渡され、応答を/waas/configからブラウザに送信するため、ルートハンドラーがマウントされていてもキーはブラウザに存在します。キーをドメインに制限すること(ステップ1)がこの呼び出しを保護します。完全なサーバーサイドキーの処理は今後の予定です。4. Cloudflare RPCプロキシを自前でホスティング
最大限の制御を得るために、自分のプロキシを展開してキーを完全にサーバーサイドに保持し、独自のレート制限やリクエストフィルタリングを追加できます。Helius RPCプロキシ
オープンソースRPCプロキシをCloudflareにワンクリックでデプロイできます。
チェックリスト
出荷前に:- クライアントキーは正確なオリジンにドメイン制限されています
- ローカル/ステージング/本番用の別々のキー
- 環境変数からキーが読み込まれ、ハードコードされません
- (オプション) サーバーサイドRPC/送信+送信者用にルートハンドラーをマウント
- (オプション) 完全なサーバーサイドキー処理用のCloudflareプロキシ
次のステップ
キーを保護する
完全なアクセス制御リファレンス:ドメイン、IP、CIDR、およびプロキシ。
構成
プロバイダーの設定とダッシュボードサインイン方法。