web-dev-qa-db-ja.com

一回だけが2回以上検証されるかもしれないと仮定するのは安全ですか?

私が集めたものから、ひとたびが生成されれば、それは次の48時間の間再利用のために有効です。

これを念頭に置いてコーディングしても安全ですか。私はAJAXを介してクライアントとのやりとりをするプラグインを書いていますが、ページが読み込まれたときにnonceを生成してすべての通信に使用するのか、それとも新しい通信を生成するのかを知りたいです。リクエストごとに1つずつ、レスポンスに含めます。

5
Lex R

1、nonceの有効期間は実際にはデフォルトで約24時間です。 wp_verify_nonce 関数を見てください。

より正確には、寿命はフィルターによって制御されます

apply_filters( 'nonce_life', DAY_IN_SECONDS );

2、有効期間の値が「実装の副作用」であるかどうかを疑う場合は、私の例では有効期間を5分に短縮するためにadd_filter('nonce_life',create_function('$v', 'return 60*5;'));を使用します。

3、あなたがあなたのプラグインのセキュリティを心配しているなら、代わりに csrf token を使うべきです。

5
Jesse

WordPressのナンスは一回使用ではありません。あなたはそれが期限切れになるまであなたが好きなだけ頻繁にナンスを再利用することができます。

0
Andy