web-dev-qa-db-ja.com

OAuth 2.0クライアントIDとシークレットをどこに保存するのですか?

私は私のWordPressサイトの中にサードパーティのAPIと統合するいくつかの機能を構築しています、そしてそのAPIはOAuth 2.0を使います。

新しいアクセストークンが必要になるたびに、クライアントIDとシークレットの両方を使用します。これは、24時間後にアクセストークンの有効期限が切れるため、少なくとも1日に1回行われる予定です。 (新しいアクセストークンを生成すると、新しい更新トークンも生成され、前の更新トークンは無効になります。)トークンをexpires_in時間とともにデータベースのオプションテーブルに格納します。

クライアントIDとシークレットをどこに保存すればよいですか。 WordPressの中でこのようなものを保存するための典型的な場所はありますか?今のところ、私はそれらをwp-config.phpで定義しているだけです。これはうまくいくはずだと思っていますが、特にクライアントシークレットのセキュリティに関して、この方法には潜在的な欠点がありますか?

1
jasonp

これはあなたが開発しているものによって異なります。それがプラグインである場合、サイトの所有者がするように頼まれるべき最後の事はそれらの設定ファイルを修正することであるのであなたはオプションにそのような設定を保存しなければなりません。

それがあなた自身のサイトであるなら、あなたがそれを管理者によって設定可能にしたくないならば、それをあなたのコードで宣言される定数にしてください。コードを調べたときに見つけるのが難しい明らかでない場所にそれを保持することに利点はありません。

セキュリティに関しては、誰かがDBにハッキングすることを心配する必要はないので、理論的にはコードに含める方が安全ですが、実際には、誰かがあなたのDBに侵入することができるなら自分の管理ユーザー...)、それはほとんどゼロの違いになります。 (私が考えることができる唯一の違いはDBのダンプを取得することですが、この種のハックはまだ困難で、おそらく超稀です)

1
Mark Kaplun