検索
ホームページCMS チュートリアル&#&プレスWordPressのNonceについて詳しく解説

WordPress の次のチュートリアル コラムでは、WordPress の Nonce について紹介します。困っている友人の役に立てば幸いです。

WordPressのノンス

ノンスとは、一度だけ使われる数字の略で、WordPressのノンスは数字ではなく、数字を組み合わせたハッシュの文字列です。値は 1 回だけ使用できるだけでなく、有効期間もあり、有効期間中、同じパラメータは有効期間が終了するまで各ユーザーに対して同じ nonce 値を生成します。この記事では、Nonceを使ってCSRF攻撃を防ぐ方法を紹介します。

Nonce を作成する

Nonce は、URL リクエストまたはフォームの Hidden 要素に配置でき、Ajax リクエスト中に Javascript を通じて使用できます。 。 Nonce のライフサイクルは現在のセッション内のみであり、ログアウトして再度ログインすると、以前の Nonce も無効になります。

URL に nonce を追加

wp_nonce_url() メソッドを通じて URL に nonce を追加できます:

wp_nonce_url( $actionurl, $action, $name );
// 例如:
$complete_url = wp_nonce_url( $bare_url, 'trash-post_'.$post->ID );
$bare_url (必須 Select) はnonce が追加される URL、$action は nonce に定義されたアクション名 (オプション)、デフォルトは -1 です。

デフォルトでは、リンク内に生成される nonce の名前は _wpnonce です。競合の可能性を避けるために、WordPress 3.6 バージョン以降では、wp_nonce_url にオプションの $name パラメーターが追加され、ユーザーが自分で指定できるようになりました。リンク内のナンスの名前。例:

$complete_url = wp_nonce_url( $bare_url, 'trash-post_'.$post->ID, 'my_nonce' );

フォームに nonce を追加

wp_nonce_field() メソッドを使用してフォームに非表示要素を追加できます:

PHP

wp_nonce_field( $action, $name, $referer, $echo )
//例如 :
wp_nonce_field( 'delete-comment_'.$comment_id );
wp_nonce_field( $action, $name, $referer, $echo )
//例如 :
wp_nonce_field( 'delete-comment_'.$comment_id );
Call上記のメソッドは、次のようなコードを生成します。

<input>
<input>

Generate a semicolon nonce

独立した nonce を生成したいだけの場合は、 wp_create_nonce() を渡すことができます。メソッド:

wp_create_nonce( $action );
// 例如:
$nonce = wp_create_nonce( 'my-action_'.$post->ID );
同様に、$action はオプションのパラメータで、デフォルトは -1 です。上記のメソッドは、「295a686963」のような結果を返します。

ノンスの有効性を確認する

フォーム内のノンスを確認する

管理者管理インターフェイスでは、次のことができます。 check_admin_referer メソッドを使用して、URL の nonce の有効性を検証します:

check_admin_referer( $action, $query_arg );
次は、check_admin_referer を使用してプラグインの nonce を検証する方法を示す例です:


       
Verificationメソッド:

check_admin_referer( 'name_of_my_action', 'name_of_nonce_field' );

Ajax での nonce の検証

Ajax リクエストの nonce の有効性を確認したい場合は、check_ajax_referer() メソッドを使用できます。 ##
check_ajax_referer( $action, $query_arg, $die )

$die は、$nonce が無効な場合にスクリプトの実行を終了するかどうかを指定します。 (デフォルトは True)

check_ajax_referer を使用する簡単な例:

<?php //Set Your Nonce
$ajax_nonce = wp_create_nonce( "my-special-string" );
?>
 
<script>
jQuery(document).ready(function($){
    var data = {
        action: &#39;my_action&#39;,
        security: &#39;<?php echo $ajax_nonce; ?>&#39;,
        my_string: &#39;Hello World!&#39;
    };
    $.post(ajaxurl, data, function(response) {
        alert("Response: " + response);
    });
});
</script>

次のコードを使用して逆方向に検証します:

add_action( 'wp_ajax_my_action', 'my_action_function' );
function my_action_function() {
    check_ajax_referer( 'my-special-string', 'security' );
    echo sanitize_text_field( $_POST['my_string'] );
    wp_die();
}

独自に生成された nonce を検証します

えええええ

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

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
WordPressは、他の人気のあるCMSプラットフォームと比較してどうですか?WordPressは、他の人気のあるCMSプラットフォームと比較してどうですか?May 02, 2025 am 12:18 AM

wordpressexcelsineaseofuseandaptaptability、makeitideal forbeginnersandsmalltomedium-sizedinesses.1)Easeofuse:wordpressisuser-frendly.2)セキュリティ:DrupalleadSwithSecurityFeatures.3)パフォーマンス:GhostoffersexcellencedueTonode.4)scal

WordPressを使用してメンバーシップサイトを構築できますか?WordPressを使用してメンバーシップサイトを構築できますか?May 01, 2025 am 12:08 AM

はい、YouCanuseWordPressTobuildAmberShiTeThite.Hore'show:1)usepluginslikememberpress、paidmembersubscriptions、orwooocommerceforusermanagement、contentaccesscontrol.2)ensurecontententrectectionwithdatedditedditionalsurationuresures

WordPressは、CMSとして使用するためにコーディングの知識が必要ですか?WordPressは、CMSとして使用するためにコーディングの知識が必要ですか?Apr 30, 2025 am 12:03 AM

WordPressを使用するためにプログラミングの知識は必要ありませんが、プログラミングをマスターするとエクスペリエンスが向上する可能性があります。 1)CSSとHTMLを使用して、テーマスタイルを調整します。 2)PHPの知識は、トピックファイルを編集して機能を追加できます。 3)カスタムプラグインとメタタグはSEOを最適化できます。 4)更新の問題を防ぐために、サブトピックのバックアップと使用に注意してください。

WordPressを使用する際のセキュリティ上の考慮事項は何ですか?WordPressを使用する際のセキュリティ上の考慮事項は何ですか?Apr 29, 2025 am 12:01 AM

tosecureawwordpresssite、soflowthesesteps:1)定期的にwordpresscore、themes、およびpluginstopatchvulnerabilities.2)usestrong、usestrong、usestrong、sonsandenabletototothentication.3)optformanagedagedwordpresshosting arehoredhoredhoredhored hosting withebapplicationfirewaal

WordPressは他のWebサイトビルダーとどのように比較されますか?WordPressは他のWebサイトビルダーとどのように比較されますか?Apr 28, 2025 am 12:04 AM

wordpressexexexexexcelsoverwebsitebuildersduetoits ffficability、scalability、andopen-sourcenature.1)それは、aversatilecmswitextensive sustomizationoptionsviathemesandplugins.2)その学習中心部のスチッピアベッタービューターフルフルフルフルフルフルフルカンセーズ。3)

2025年に開発者が使用できる5つのWordPressプラグイン2025年に開発者が使用できる5つのWordPressプラグインApr 27, 2025 am 08:25 AM

2025年のウェブサイト開発のための7つの必須ワードプレスプラグイン 2025年に一流のWordPress Webサイトを構築するには、速度、応答性、およびスケーラビリティが必要です。 これを効率的に達成することは、しばしば戦略的なプラグインの選択にかかっています。 この記事Highlig

WordPressは何のために使用しますか?WordPressは何のために使用しますか?Apr 27, 2025 am 12:14 AM

wordpresscanbeusedpurposesbeyondblogging.1)e-ocommerce:withwoocommerce、itcanbecomeafulloninestore.2)メンバーシップサイト:Pluginslikememberpressenable clusivecontentareas.3)ポートフォリオソイト:ThemeslikeasieasiestraololowStunnningStunnningStunnningStunnningStuntunnneDayOutssuntunnneaTuntunnnedrayOutuntuntuntunnnedraySuts

WordPressはポートフォリオWebサイトを作成するのに適していますか?WordPressはポートフォリオWebサイトを作成するのに適していますか?Apr 26, 2025 am 12:05 AM

はい、wordpressisexcellentforcreatingportfoliowebsite.1)itoffers numersportfolio cilems like'astra'astra'foreasycustomization.2)プラグインエレメントレメントレディングの装飾、思想的な態度環境を

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール