IT用語
一度だけ使う、推測できない値。CSRF対策やCSPでの許可、暗号の処理などに使う。
nonce(ノンス)は、「number used once」の略で、一度だけ使う推測できない値のことです。リクエストやスクリプトが正規のものかを確かめるために使われます。
WordPress の nonce
WordPress では、フォームや URL に nonce を付けて、送信されたリクエストが正規の画面から送られたものかを確かめます。CSRF 対策の基本です。
- wp_nonce_field():フォームに nonce を埋め込む
- wp_create_nonce():nonce の値を作る
- check_admin_referer()・wp_verify_nonce():送信された nonce を確かめる
なお、WordPress の nonce は厳密には一度きりではなく、一定時間(初期設定では最大 24 時間)有効な値です。権限の確認(current_user_can())の代わりにはならないため、両方を組み合わせて使います。
CSP の nonce
CSP では、ページを表示するたびに nonce を作り、script タグと CSP のヘッダーに同じ値を付けることで、そのスクリプトだけの実行を許可できます。


