web-dev-qa-db-ja.com

WordPress Noncesはどのように機能しますか?

セキュリティの観点からWordPressのナンスがどのように機能するかを理解しようとしています。 nonceは1回使用された数字を表しますが、WordPressによれば、それは24時間まで有効である可能性があります。この期間中に9999回使用される可能性があります(同じクライアントによって)。

私はWordPressのナンスは本当に一度だけ使用される数字であり、ナンスは一回限りの使用のためにだけ有効であると思った、しかしそうではない。私は、より良いセキュリティのために、一回限りの使用数がより良いであろうと思います。コメントシステムがあり、誰かが「返信」を2回クリックします。コメントを2回挿入するのではなく、2回の要求で1回だけ有効なナンス(同じもの)が与えられるため、コメントは1回挿入されます。

問題が発生していますか?それらのWordPressナンスの目的は何ですか?

Codexの Wordpress Noncesを読んだ人は - 、彼らはそれをかなりかなり説明している。主なポイントは次のとおりです。

  1. nonceが危険にさらされる可能性があると常に仮定します。
  2. ナンスは数字と文字で構成されたハッシュです。
  3. Wordpressはhttpsリクエストをnoncesuser cookiesの両方で検証します。

要するに、ポイント#3はWordPressとどのように連携するのかということです。彼らはwordpressのnonceの代わりにcurrent_user_can()関数を使うことを述べました。

目的としては、それが多層セキュリティの基本的な目的にかなっていると思います。これを読む Noncesは役に立たない

5
Dilip Gupta

あなたが正しく見つけたように、wordpressは文字通りのNONCEを使用しませんが、十分に良い近​​似です。

Nonceの文字通りの定義に関する実装上の問題は、あなたが生成したすべての数を追跡する必要があるということです、特にそれらが本当にランダムであるならば。これは、生成されたnonceをDBに格納することを意味します。つまり、管理ページが更新されるたびにDB書き込みが行われることになり、サーバーに負担がかかる可能性があります。

Wordpressの妥協案は、秘密ハッシュキーとユーザーに敏感なコンテキストを使用して、ナンスを今日のハッシュ値として生成することです。この方法では、攻撃の可能性のあるウィンドウは24時間に制限されており、ナンスを推測するのは困難です。あなたのサイトがHTTP上にあり、あなたが公共のWiFiネットワーク上にいる間あなたがどんな管理者でもしているならば傍受の問題がまだあります、しかしその場合あなたの全体の認証は露出されます.

4
Mark Kaplun