したがって、JanrainのPHP OpenIDライブラリに多くの不満を感じた後、LightOpenIDライブラリに切り替えることにしました。これは、はるかに単純であり、この回答によれば、OpenIDプロバイダーが正しく実装されている限りセキュリティに妥協しないためです(それらはとにかくすべてのユーザーの情報を保持します:P)。
私が抱えている残りの問題の1つは、LightOpenIDがGET
プロトコルを使用してOpenID認証要求を返すことです。便宜上、関連情報を抽出した後はいつでもユーザーをリダイレクトできることを理解していますが、認証情報がを介して送信されるのではなく、を介しheader
て送信される場合にどのような問題を心配する必要があるのでしょうか。たとえば、ユーザーが提供した個人情報(アドレス、電子メールなど、sregを使用して要求されたもの)は、暗号化されて渡される場合よりも、仲介者によって傍受および抽出される方がはるかに簡単であるようです。GET
POST
POST
送信されるデータをどのように描写するかを次に示します。
- エンドユーザーがOpenIDを入力し、サーバーに送信します(任意のプロトコルを使用できます)
- 私のサーバーはOpenIDプロバイダーに認証を要求
header
し、OpenIDプロバイダーのページにリダイレクトするために使用し、必要に応じてエンドユーザーに私のサイトを許可させます。(任意のプロトコルを使用できます) - OpenIDプロバイダーは、を使用して認証情報をサーバーに送り返します
GET
。これには、ユーザーの個人情報に関する上記の懸念が含まれます。つまり、仲介者は、渡されたURLをキャッチするだけで、個人情報を抽出できます。私の知る限り、認証情報はログインの検証とユーザーのセッションの追跡に使用する別の一意のIDの生成に一度しか使用できなかったため、彼らには役に立ちません。セキュリティを強化するために、最初の登録でsreg情報を要求できるのは1回だけです。 - 私のサーバーは情報を処理し、最終的にエンドユーザーを最初に認証が必要なページにリダイレクトします(ここでも任意のプロトコルを使用でき、送信する情報を選択できます)
私はこれについて完全に間違っていますか?そうでない場合、どうすればこれらの問題を軽減できますか?
ps用語にあまり詳しくないので、間違いがあった場合とその修正方法を教えてください。