[解決済み] wp_verify_nonce()の意味は?
質問
を読みました。 参照 この関数は、Wordpressで使用されていますが、私はこの関数が実際に何をするのかまだ理解していません。
私はワードプレスでメタボックスを作成するためのチュートリアルを読んでいて、私はデータを保存する関数の中にこのコードがあります。
if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {
return $post_id;
}
どなたか、wp_verify_nonce()の意味を簡単に説明していただけませんか?
どのように解決するのですか?
nonce は「一度だけ使用される番号」で、WP が POST データが安全な場所から送られてきたことを確認するために使用するコードです。これは、あなたのプラグインが安全でないソースからのデータを消化してしまうことがないようにするために有用です ( クロスサイトリクエストフォージェリ ).
マーク・ジャキースのこのブログの記事 は、それらを理解するのに有効です。
<ブロッククオート[nonces]は、WordPressインストール、WordPressユーザー、アクション、アクションのオブジェクト、アクションの時間(24時間ウィンドウ)に対して一意です。つまり、これらのいずれかが変更された場合、nonceは無効となります。つまり、もしあなたが(何らかの方法で)私が使用しているnonceを傍受した場合、まず第一に、私を騙すためにこの鍵を使用する時間は24時間しかないのです。
nonce を作成するには
wp_create_nonce
ある文字列を指定し、nonce のための「コンテキスト」を提供します。これは nonce のための「コンテキスト」を提供するもので、nonce はあなたに文字列を返します。そして、この nonce を POST リクエストの一部として含めます。受信側のページは、同じコンテキストを使用して自分自身の nonce を作成し、それらが一致するかどうかを確認する必要があります。
この場合、与えられたコンテキストは
plugin_basename(__FILE__)
. これは、同じプラグイン内から呼び出されるたびに、同じ文字列を生成します (
ここで
).
を設定した場合
wp_verify_nonce
は、Mark が指定したのと同じ状況で作成され、同じコンテキスト文字列を持つ nonce を受け取ると、true を返します。
要するに
!wp_verify_nonce
は、wp_verify_nonce が false を返した場合に true を返します。
($_POST[$meta_box['name'].'_noncename'],
の第一引数です。
wp_verify_nonce
: チェックする nonce です。このコードでは、グローバル変数 $_POST に格納されている nonce を post リクエストから取得します。
plugin_basename(__FILE__) )
の第2引数です。
wp_verify_nonce
最初の nonce をチェックするための新しい nonce を生成するためのコンテキストです。
{ return $post_id; }
nonce が一致しない場合、現在の関数の実行を停止し、変数
$post_id
.
関連
-
[解決済み] __() と esc_html_e はいつ使うのか?
-
[解決済み] Wordpressの条件文if is_page()の使い方
-
[解決済み] CSS SyntaxError, unexpected token { が表示されます。しかし、私はエラーを見ることができません
-
[解決済み] WordPressで<?php wp_head(); ?>でレンダリングされたHTMLを見つけるには?
-
[解決済み] バーチャルホストの問題 2つのバーチャルホストファイルがありますが、結果は予想外です 2番目のサイトが正しく読み込まれません
-
[解決済み] woocommerce.cssをオーバーライドするベストな方法
-
[解決済み] wpテーマとauthor uriの使い方
-
[解決済み] "アップロードにエラーが発生しました。Please try again later" エディタに画像をアップロードする際、ワードプレスでエラーが発生しました。
-
[解決済み] アーカイブでAJAXによるカートへの追加ボタンを有効にする」チェックボックスは何のためですか?
-
[解決済み] WordPressのapply_filters(...)って実際どうなの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Woocommerceの可変商品。申し訳ありませんが、この製品は使用できません。別の組み合わせを選択してください。
-
[解決済み] 別のフィールドから Gravityforms フィールドの値を取得する
-
[解決済み] ワードプレスでスクリプトをキューに入れるとき、get_stylesheet_directory_uri() と get_template_directory_uri() の違いは何でしょう?
-
[解決済み] font awesomeのアイコンの代わりにクエスチョンマークが付いた円形
-
[解決済み] WordPressで<?php wp_head(); ?>でレンダリングされたHTMLを見つけるには?
-
[解決済み] バーチャルホストの問題 2つのバーチャルホストファイルがありますが、結果は予想外です 2番目のサイトが正しく読み込まれません
-
[解決済み] サイレント、ループ、自動再生の MP4 <ビデオ> である GIF に alt テキストを追加するにはどうすればよいですか?
-
[解決済み] wp_verify_nonce()の意味は?
-
[解決済み] WordPressのget_termsとget_the_termsの違いは何ですか?
-
[解決済み] WXRファイルでないように見える、WXRバージョン番号がない/無効である