ホームページ > CMS チュートリアル > &#&プレス > WordPress noncesとは何ですか?

WordPress noncesとは何ですか?

Jennifer Aniston
リリース: 2025-02-16 12:58:09
オリジナル
641 人が閲覧しました

WordPressセキュリティ:NONCEを使用してテーマとプラグインコードを保護します

WordPressテーマまたはプラグインコードのセキュリティを保護することが重要であり、悪意のあるユーザーからの攻撃を効果的に防ぐことができます。 WordPressのフォームデータを掃除、脱出、検証する方法、およびWordPressテーマの品質を改善するためにVIPスキャナーを使用する方法の前に説明しました。今日、私たちは、NONCE(1回限りのデジタル)がWordPressのテーマとプラグインを安全に保つのにどのように役立つかを探ります。

キーポイント

  • WordPress Nonce、または「1回限りの使用番号」は、ユーザー要求を確認し、悪意のある試みを防ぐことにより、WordPress Webサイトのセキュリティを強化するために使用される独自のセキュリティトークンです。それらは、クロスサイトリクエストフォーファリー(CSRF)攻撃を防ぐのに特に役立ちます。
  • nonceは、ユーザーセッションごとに一意のトークン、フォームの提出、またはajaxリクエストを生成することで機能します。このトークンは、リクエストを処理するときに確認され、それが一致しない場合、リクエストは拒否されます。これにより、攻撃者がトークンを予測または乱用することが困難になります。
  • WordPressでNonceの作成は、WordPress関数
  • を使用して達成されます。これは、保護される操作を表す単一の文字列パラメーターを受け入れます。検証nonceは、wp_create_nonce()関数を使用して行われます。これは、検証するノンセと関連する操作の2つのパラメーターを受け入れます。 wp_verify_nonce()
  • nonceは、WordPressのAJAX要求に使用でき、CSRF攻撃を防ぐためにセキュリティの追加層を追加できます。 Nonceはユーザー固有でもあり、あるユーザーのために作成されたNonCEが別のユーザーに対して無効であることを確認することにより、追加のセキュリティレイヤーを提供します。
WordPress Nonceとは何ですか?

wordpress nonceは次のように定義されています

…特定の種類の虐待(悪意またはその他)からURLやフォームを保護するのに役立つ「1回限りの使用番号」。
https://www.php.cn/link/c5af1dfde10402285102771ad64b3dac

WordPressでは、Nonceは技術的には数字ではありません(文字と数字のハッシュです)、悪意のあるユーザーがアクションを実行するのを防ぐのに役立ちます。

WordPress nonceの作業は、2つの部分に分かれています

nonce(hash value)を作成し、フォームまたはアクションを通じて送信し、

    nonceを確認し、フォームデータを受け入れるか、アクションを実行します。
  • たとえば、WordPress管理画面の投稿を削除すると、URLに
  • パラメーターが含まれていることに気付くでしょう。
https://www.php.cn/link/18175d262a01ebf04bc03e38e48e3ffc

_wpnonce

投稿を削除するルーチンは、投稿542が削除する前に

のnonce値を持っているかどうかを確認します。 NonCEが存在しないか、期待値と一致しない場合、投稿は削除されません。 これにより、悪意のあるユーザーが多数の投稿を削除する可能性があります。たとえば、ノンセはID 542:に属しているため、以下は機能しません。

https://www.php.cn/link/322d830da1130169fb4ca1c7543799d0 https://www.php.cn/link/dd4143061640d55fb312dd0ce8a76e https://www.php.cn/link/9e0f9113b44003201076a9fade1b72d8

What Are WordPress Nonces?

プラグインにWordPress Nonceを実装する方法を見てみましょう。

WordPressプラグイン

を設定します

独自の設定画面を備えた基本プラグインから始めましょう。設定画面には、WordPressオプションテーブルに送信および保存できるフィールドがあります。

次のコードを新しいファイルに入力してくださいwp-content/plugins/implementing-wordpress-nonces/implementing-wordpress-nonces.php

// ... (插件代码,与原文相同) ...
ログイン後にコピー
ログイン後にコピー

WordPress Management>

このアイテムをクリックすると、1つのフィールドのみで設定画面に移動されます。 What Are WordPress Nonces?

任意の値を入力し、「保存」をクリックします。すべてが機能する場合は、確認情報と入力した値が表示されます。

What Are WordPress Nonces?

セキュリティの脆弱性を実証します

次のURLをWebブラウザアドレスバーに入力します(ドメイン名をWordPressのインストール場所に置き換えます):What Are WordPress Nonces?

https://www.php.cn/link/0e143c3bef0f7759c230664c4dc905f8

注意何が起こったのですか?値は単にABCとして保存され、URLに直接アクセスしてWordPressにログインします。

の代わりにコードで

)を使用できますが(

を使用してセキュリティの問題をより簡単に実証します)、これは役に立ちません - 悪意のあるユーザーは引き続き自分自身を使用したり、クリックしてクリックすることができますこのリンクを使用すると、この画面にPOSTリクエストを送信すると、オプション値が変更されます。

What Are WordPress Nonces? これは、クロスサイトリクエスト偽造(またはCSRF)と呼ばれます。悪意のあるWebサイト、電子メール、アプリケーションなどにより、ユーザーのWebブラウザーは不要な操作を実行します。

この攻撃が可能にならないように、WordPress Nonceを作成および検証します。 $_POST $_REQUEST非CE $_REQUESTでプラグインを保護します 前述のように、このプロセスは2つのステップに分かれています。最初に、フォームで提出される非CEを作成する必要があります。次に、フォームを送信するときにNonCEを確認する必要があります。

私たちのフォームでノンセフィールドを作成するには、wp_nonce_field()

を使用できます。

ノンセの隠しフォームフィールドを取得または表示します...フォームリクエストのコンテンツが現在のサイトからではなく、現在のサイトから来ていることを確認するために使用されます...

入力ボタンの上に次のコードを追加します

// ... (插件代码,与原文相同) ...
ログイン後にコピー
ログイン後にコピー

4つのパラメーターを受け入れる - 最初の2つが最も重要です:wp_nonce_field

  • :これにより、実行中の特定の操作が決定され、一意である必要があります。複数の操作が実行される場合があるため、プラグイン名を操作のプレフィックスとして使用することをお勧めします。この場合、私たちは何かを保存しているので、$action implementing_wordpress_nonces_saveを使用します
  • :これは、この関数によって作成された隠されたフィールドの名前を決定します。上記のように、プラグイン名をそのプレフィックスとして使用したので、$name implementing_wordpress_nonces_nonceに名前を付けました。
[設定]画面をリロードする場合は、値を変更して[保存]をクリックすると、値が変更されていることがわかります。これで、提出されたノンセフィールドのチェックを実装して、

wp_verify_nonce( $name, $action )を使用して実装する必要があります。

ノンセが正しいことを確認し、指定された操作と比較して期限切れになっていないことを確認します。この関数は、現在のリクエストで送信されたNONCEを検証するために使用されます。通常、

PHP変数を介してアクセスされます。 $_REQUEST

プラグインの「保存設定」部分を次のコードに置き換えます。

admin_screen()このコードは、次の操作を実行します:

wp_nonce_field( 'implementing_wordpress_nonces_save', 'implementing_wordpress_nonces_nonce' );
ログイン後にコピー

最初に、何かを提出したかどうかをチェックします。

    それから、私たちの非CEフィールドが存在するかどうかをチェックし、もしそうなら、私たちが期待するアクションに基づいてノンセの値を検証しようとします。
  • チェックが通過した場合は、オプションを更新します。
  • チェックが失敗した場合、「無効なNonceが指定した」というメッセージで403エラーをスローします。
  • 私たちのノンセが作成され、検証されていることを確認するには、「悪意のある」ダイレクトURLにアクセスするようにもう一度試してみましょう。
https://www.php.cn/link/0e143c3bef0f7759c230664c4dc905f8

>

ノンセが実装されており、検証されている場合、「無効なノンセ仕様」通知が表示されます:

...(残りは元のテキストと同じですが、言語と表現は、元の意図を変えないように詳細に調整されています)....

以上がWordPress noncesとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート