WordPressセキュリティ:NONCEを使用してテーマとプラグインコードを保護します
WordPressテーマまたはプラグインコードのセキュリティを保護することが重要であり、悪意のあるユーザーからの攻撃を効果的に防ぐことができます。 WordPressのフォームデータを掃除、脫出、検証する方法、およびWordPressテーマの品質(zhì)を改善するためにVIPスキャナーを使用する方法の前に説明しました。今日、私たちは、NONCE(1回限りのデジタル)がWordPressのテーマとプラグインを安全に保つのにどのように役立つかを探ります。
キーポイント
- WordPress Nonce、または「1回限りの使用番號」は、ユーザー要求を確認し、悪意のある試みを防ぐことにより、WordPress Webサイトのセキュリティを強化するために使用される獨自のセキュリティトークンです。それらは、クロスサイトリクエストフォーファリー(CSRF)攻撃を防ぐのに特に役立ちます。
- nonceは、ユーザーセッションごとに一意のトークン、フォームの提出、またはajaxリクエストを生成することで機能します。このトークンは、リクエストを処理するときに確認され、それが一致しない場合、リクエストは拒否されます。これにより、攻撃者がトークンを予測または亂用することが困難になります。 WordPressでNonceの作成は、WordPress関數(shù)
- を使用して達成されます。これは、保護される操作を表す単一の文字列パラメーターを受け入れます。検証nonceは、
wp_create_nonce()
関數(shù)を使用して行われます。これは、検証するノンセと関連する操作の2つのパラメーターを受け入れます。wp_verify_nonce()
nonceは、WordPressのAJAX要求に使用でき、CSRF攻撃を防ぐためにセキュリティの追加層を追加できます。 Nonceはユーザー固有でもあり、あるユーザーのために作成されたNonCEが別のユーザーに対して無効であることを確認することにより、追加のセキュリティレイヤーを提供します。
wordpress nonceは次のように定義されています
…特定の種類の虐待(悪意またはその他)からURLやフォームを保護するのに役立つ「1回限りの使用番號」。
http://ipnx.cn/link/c5af1dfde10402285102771ad64b3dac WordPressでは、Nonceは技術(shù)的には數(shù)字ではありません(文字と數(shù)字のハッシュです)、悪意のあるユーザーがアクションを?qū)g行するのを防ぐのに役立ちます。
WordPress nonceの作業(yè)は、2つの部分に分かれています
nonce(hash value)を作成し、フォームまたはアクションを通じて送信し、
- nonceを確認し、フォームデータを受け入れるか、アクションを?qū)g行します。
- たとえば、WordPress管理畫面の投稿を削除すると、URLに
- パラメーターが含まれていることに気付くでしょう。
_wpnonce
のnonce値を持っているかどうかを確認します。 NonCEが存在しないか、期待値と一致しない場合、投稿は削除されません。 これにより、悪意のあるユーザーが多數(shù)の投稿を削除する可能性があります。たとえば、ノンセはID 542:に屬しているため、以下は機能しません。
http://ipnx.cn/link/322d830da1130169fb4ca1c7543799d0 http://ipnx.cn/link/dd4143061640d55fb312dd0ce8a76e http://ipnx.cn/link/9e0f9113b44003201076a9fade1b72d8
プラグインにWordPress Nonceを?qū)g裝する方法を見てみましょう。
WordPressプラグイン
を設(shè)定します獨自の設(shè)定畫面を備えた基本プラグインから始めましょう。設(shè)定畫面には、WordPressオプションテーブルに送信および保存できるフィールドがあります。
次のコードを新しいファイルに入力してくださいwp-content/plugins/implementing-wordpress-nonces/implementing-wordpress-nonces.php
:
// ... (插件代碼,與原文相同) ...
WordPress Management>
このアイテムをクリックすると、1つのフィールドのみで設(shè)定畫面に移動されます。
任意の値を入力し、「保存」をクリックします。すべてが機能する場合は、確認情報と入力した値が表示されます。
セキュリティの脆弱性を?qū)g証します
次のURLをWebブラウザアドレスバーに入力します(ドメイン名をWordPressのインストール場所に置き換えます):
http://ipnx.cn/link/0e143c3bef0f7759c230664c4dc905f8
注意何が起こったのですか?値は単にABCとして保存され、URLに直接アクセスしてWordPressにログインします。 の代わりにコードで
)を使用できますが(
を使用してセキュリティの問題をより簡単に実証します)、これは役に立ちません - 悪意のあるユーザーは引き続き自分自身を使用したり、クリックしてクリックすることができますこのリンクを使用すると、この畫面にPOSTリクエストを送信すると、オプション値が変更されます。
これは、クロスサイトリクエスト偽造(またはCSRF)と呼ばれます。悪意のあるWebサイト、電子メール、アプリケーションなどにより、ユーザーのWebブラウザーは不要な操作を?qū)g行します。
この攻撃が可能にならないように、WordPress Nonceを作成および検証します。 $_POST
$_REQUEST
非CE $_REQUEST
でプラグインを保護します
前述のように、このプロセスは2つのステップに分かれています。最初に、フォームで提出される非CEを作成する必要があります。次に、フォームを送信するときにNonCEを確認する必要があります。
私たちのフォームでノンセフィールドを作成するには、wp_nonce_field()
:
ノンセの隠しフォームフィールドを取得または表示します...フォームリクエストのコンテンツが現(xiàn)在のサイトからではなく、現(xiàn)在のサイトから來ていることを確認するために使用されます...
入力ボタンの上に次のコードを追加します
// ... (插件代碼,與原文相同) ...
4つのパラメーターを受け入れる - 最初の2つが最も重要です:wp_nonce_field
- :これにより、実行中の特定の操作が決定され、一意である必要があります。複數(shù)の操作が実行される場合があるため、プラグイン名を操作のプレフィックスとして使用することをお勧めします。この場合、私たちは何かを保存しているので、
$action
implementing_wordpress_nonces_save
を使用します - :これは、この関數(shù)によって作成された隠されたフィールドの名前を決定します。上記のように、プラグイン名をそのプレフィックスとして使用したので、
$name
implementing_wordpress_nonces_nonce
に名前を付けました。
:wp_verify_nonce( $name, $action )
を使用して実裝する必要があります。
ノンセが正しいことを確認し、指定された操作と比較して期限切れになっていないことを確認します。この関數(shù)は、現(xiàn)在のリクエストで送信されたNONCEを検証するために使用されます。通常、プラグインの「保存設(shè)定」部分を次のコードに置き換えます。PHP変數(shù)を介してアクセスされます。
$_REQUEST
admin_screen()
このコードは、次の操作を?qū)g行します:
wp_nonce_field( 'implementing_wordpress_nonces_save', 'implementing_wordpress_nonces_nonce' );
最初に、何かを提出したかどうかをチェックします。
- それから、私たちの非CEフィールドが存在するかどうかをチェックし、もしそうなら、私たちが期待するアクションに基づいてノンセの値を検証しようとします。
- チェックが通過した場合は、オプションを更新します。
- チェックが失敗した場合、「無効なNonceが指定した」というメッセージで403エラーをスローします。
- 私たちのノンセが作成され、検証されていることを確認するには、「悪意のある」ダイレクトURLにアクセスするようにもう一度試してみましょう。
。
>ノンセが実裝されており、検証されている場合、「無効なノンセ仕様」通知が表示されます:
...(殘りは元のテキストと同じですが、言語と表現(xiàn)は、元の意図を変えないように詳細に調(diào)整されています)....
以上がWordPress noncesとは何ですか?の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

WordPressがサーバーCPU使用の急増を引き起こす主な理由には、プラグインの問題、非効率的なデータベースクエリ、テーマコードの品質(zhì)の低さ、またはトラフィックの急増が含まれます。 1.最初に、トップ、HTOP、またはコントロールパネルツールを介したWordPressによって引き起こされる高い負荷であるかどうかを確認します。 2.トラブルシューティングモードを入力して、プラグインを徐々に有効にしてパフォーマンスのボトルネックをトラブルシューティングし、QueryMonitorを使用してプラグインの実行を分析し、非効率的なプラグインを削除または交換します。 3.キャッシュプラグインをインストールし、冗長データをクリーンアップし、スロークエリログを分析してデータベースを最適化します。 4.トピックには、コンテンツの過負荷、複雑なクエリ、キャッシングメカニズムの欠如などの問題があるかどうかを確認します。標(biāo)準のトピックテストを使用して、コードロジックを比較および最適化することをお勧めします。上記の手順に従って、場所を確認して解決し、問題を1つずつ解決します。

JavaScriptファイルをマイニングすると、ブランク、コメント、役に立たないコードを削除することにより、WordPress Webサイトの読み込み速度を向上させることができます。 1。W3TOTALCACHEなどの圧縮をサポートするキャッシュプラグインを使用し、「MINIFY」オプションで圧縮モードを有効にし、選択します。 2。FastVelocityMinifyなどの専用圧縮プラグインを使用して、より細かい制御を提供します。 3. JSファイルを手動で圧縮し、FTPを介してアップロードします。これは、開発ツールに精通しているユーザーに適しています。一部のテーマまたはプラグインスクリプトは圧縮関數(shù)と競合する可能性があり、アクティベーション後にWebサイト機能を徹底的にテストする必要があることに注意してください。

プラグインに依存しないWordPressサイトを最適化する方法は次のとおりです。1。積み重なったテーマを避けるために、AstraやGeneratePressなどの軽量テーマを使用します。 2. CSSおよびJSファイルを手動で圧縮およびマージして、HTTP要求を削減します。 3.アップロードする前に畫像を最適化し、WebP形式を使用し、ファイルサイズを制御します。 4. configure.htaccessブラウザキャッシュを有効にし、CDNに接続して靜的リソースの負荷速度を向上させます。 5.記事の改訂を制限し、定期的にデータベース冗長データをクリーンにします。

コメントスパムを防ぐ最も効果的な方法は、プログラマティックな手段を介して自動的に識別して傍受することです。 1.検証コードメカニズム(Googler CaptchaやHcaptchaなど)を使用して、特に公共のWebサイトに適した人間とロボットを効果的に區(qū)別します。 2.隠しフィールド(ハニーポットテクノロジー)を設(shè)定し、ロボットを使用して機能を自動的に埋めて、ユーザーエクスペリエンスに影響を與えることなくスパムコメントを識別します。 3.コメントコンテンツのブラックリストを確認し、敏感な単語の一致を通じてスパム情報をフィルタリングし、誤判斷を避けるために注意を払ってください。 4.コメントの頻度とソースIPを判斷し、単位時間あたりの提出數(shù)を制限し、ブラックリストを確立します。 5.サードパーティのスパムサービス(Akismet、CloudFlareなど)を使用して、識別の精度を向上させます。ウェブサイトに基づいていることができます

Transientapiは、自動有効期限データを一時的に保存するためのWordPressの組み込みツールです。そのコア関數(shù)は、set_transient、get_transient、delete_transientです。 OptionsAPIと比較して、Transimentsは、Cache API要求の結(jié)果や複雑なコンピューティングデータなどのシナリオに適した、生存時間(TTL)の設(shè)定をサポートしています。それを使用する場合、キーネーミングと名前空間の獨自性、キャッシュ「怠zyな削除」メカニズム、およびオブジェクトキャッシュ環(huán)境では続かない問題に注意を払う必要があります。一般的なアプリケーションシナリオには、外部要求頻度の削減、コード実行リズムの制御、ページの読み込みパフォーマンスの改善が含まれます。

Gutenbergブロックを開発する場合、エンキュー資産の正しい方法には次のものが含まれます。1。register_block_typeを使用して、editor_script、editor_style、およびstyleのパスを指定します。 2。functions.phpまたはプラグインでwp_register_scriptとwp_register_styleを介してリソースを登録し、正しい依存関係とバージョンを設(shè)定します。 3.適切なモジュール形式を出力し、パスが一貫していることを確認するためのビルドツールを構(gòu)成します。 4. Add_Theme_SupportまたはEnqueue_Block_Assetsを介してフロントエンドスタイルの読み込みロジックを制御して、フロントエンドスタイルのロードロジックが確保されるようにします。

カスタムユーザーフィールドを追加するには、プラットフォームに従って拡張メソッドを選択し、データ検証と許可制御に注意を払う必要があります。一般的なプラクティスには次のものが含まれます。1。データベースの追加のテーブルまたはキー価値ペアを使用して情報を保存します。 2.フロントエンドに入力ボックスを追加し、バックエンドと統(tǒng)合します。 3。機密データのフォーマットチェックとアクセス許可を制約します。 4.モバイルの適応とユーザーエクスペリエンスを考慮しながら、新しいフィールド表示と編集をサポートするインターフェイスとテンプレートを更新します。

WordPressにカスタム書き換えルールを追加する鍵は、ADD_REWRITE_RULE関數(shù)を使用し、ルールが正しく有効になることを確認することです。 1. add_rewrite_ruleを使用してルールを登録します。形式はadd_rewrite_rule($ regex、$ redirect、$ after)です。 2。add_filterを介してカスタムクエリ変數(shù)を追加する必要があります。 3。変更後、固定リンク設(shè)定を更新する必要があります。 4.紛爭を避けるために、ルールを「トップ」に配置することをお勧めします。 5.プラグインを使用して、利便性のために現(xiàn)在のルールを表示できます
