Bug(バグ) #1574
未完了同梱されている OAuth.php が古いので差し替える
0%
説明
OpenPNE3で使われている、http://oauth.googlecode.com/svn/code/php/OAuth.php で配布されているphp版OAuthクラスの過去の実装において、クエリパラメータのソート順がOAuth仕様に沿っていない為、最新の OAuth.php(少なくともこの問題について修正が施された2010/6/12以降のもの)に差し替えるのが適当と思われます。
背景¶
OAuth Signatureの生成時のクエリパラメータのソート順について、仕様書(http://oauth.net/core/1.0/#signing_process 参照)では
Parameters are sorted by name, using lexicographical byte value ordering. If two or more parameters share the same name, they are sorted by their value.
と定義されています。
同じパラメータ名を使うものが複数ある場合のソート順について、古いOAuth.phpではこの仕様に対し、パラメータの値を「値順(数値なら小さい順)」でソートする実装となっています。
2010/06/12以降のOAuth.phpでは、パラメータの値を(パラメータ名のソート同様)辞書順でソートするように修正されています。(誤解を生みやすい仕様記述かと思いますが、最新版で採用されているこの実装が正しいようです)
http://code.google.com/p/oauth/issues/detail?id=164
このため、古い OAuth.php を利用する場合、正しくないsignatureを生成してしまったり、正しいsignatureを正しくないとしてしまう可能性があります。