ホームページ > CMS チュートリアル > &#&プレス > WordPressのデータの消毒、脱出、および検証

WordPressのデータの消毒、脱出、および検証

William Shakespeare
リリース: 2025-02-17 08:34:11
オリジナル
482 人が閲覧しました

WordPressデータセキュリティ:浄化、脱出、および検証

WordPressプラグインと何千ものWebサイトにテーマを構築する場合、WordPressの入力とままにするデータを慎重に処理してください。このチュートリアルでは、WordPressデータを保護、クリーニング、チェックするためのネイティブ機能を検討します。これは、設定ページ、HTMLフォーム、ショートコードの操作などの作成に重要です。

"Sanitizing,

データ浄化とは何ですか?

要するに、データの浄化はユーザーの入力をクリーンアップすることです。入力で許可されていないテキスト、文字、またはコードを削除します。

例: gmailは、CSSがGmailスタイルを上書きするのを防ぐために表示する前に、HTMLメッセージからタグとコンテンツを削除します。 WordPressウィジェットのタイトルはHTMLタグを許可せず、ある場合はタイトルを保存する前に自動的に削除されます。

WordPressは、さまざまなタイプのデータを精製するための複数の関数を提供します:

  • :メールアドレスで許可されていない文字を削除します。たとえば、sanitize_email()outputsanitize_email("narayan prusty@sitepoint.com")"narayanprusty@sitepoint.com"
  • :コマンドライン参照ファイルに問題を引き起こす可能性のあるファイル名から文字を削除します。 WordPress Media Uploaderは、この関数を使用してメディアファイル名を精製します。たとえば、sanitize_file_name()outputsanitize_file_name("_profile pic--1_.png")"profile-pic-1_.png"
  • :オプション、メタデータ、および一時的なキーには、小文字、ダッシュ、およびアンダースコアのみを含むことができます。この関数は、キーを精製するために使用されます。たとえば、sanitize_key()outputsanitize_key("http://SitePoint.com")"httpsitepointcom"
  • :無効なUTF-8文字を削除し、HTML固有の文字をエンティティに変換し、すべてのタグを削除し、ラインブレーク、タブ、および追加スペースを削除します。 WordPressは、この関数を使用してウィジェットタイトルを精製します。たとえば、sanitize_text_field()outputsanitize_text_field("<b>Bold</b>")"Bold"
  • :PHPおよびHTMLタグ、および文字列からのアクセントを削除します。スペース文字をダッシュ​​に変換します。この関数は、タイトルを浄化するのではなく、記事/ページのタイトルに基づいて記事/ページのナメクジを生成するために使用されます(タイトルを浄化するにはsanitize_title())。たとえば、sanitize_text_fieldoutputsanitize_title("Sanítizing, Escaping and Validating Data in WordPress")"sanitizing-escaping-and-validating-data-in-wordpress"

データエスケープとは何ですか? 要するに、データエスケープは出力を保護することです。これは、XSS攻撃を防ぎ、データが予想どおりに表示されるようにするために行われます。

データエスケープは、実行ではなく表示のために特別なHTML文字をHTMLエンティティに変換します。

例:

Facebookは、ユーザーがお互いのコンピューターでコードを実行しないことを確認するために、表示時にチャットメッセージを逃れます。

WordPressは、さまざまな種類のデータを逃れるためのいくつかの関数を提供します:

  • esc_html():HTML固有の文字をエスケープします。
  • esc_textarea():テキスト領域にテキストを表示するときは、esc_textarea()がエンティティをダブルエンコードできるため、esc_html()の代わりにesc_textarea()を使用します。
  • esc_attr(),&"、および'文字をエンコードします。エンティティを二重にエンコードすることはありません。この関数は、HTMLタグ属性の値を逃れるために使用されます。
  • esc_url():URLにはJavaScriptコードが含まれている場合があります。したがって、URLまたはフル<a></a>タグを表示する場合は、href属性を脱出する必要があります。そうしないと、XSS攻撃が発生する可能性があります。
  • esc_url_raw():URLをデータベースまたはURLリダイレクトに保存する場合は、この関数を使用します。 esc_urlesc_url_rawの違いは、esc_url_rawがversと単一の引用符を置き換えないことです。
  • antispambot():この関数は、電子メールアドレス文字をHTMLエンティティに変換して、スパムボットをブロックします。

データ検証とは何ですか?

要するに、データ検証とは、ユーザーの入力を確認することです。これは、ユーザーが有効な値を入力したかどうかを確認することです。

データが無効である場合、処理または保存されません。システムは、ユーザーに値の再入力を求めます。

例:ウェブサイトでアカウントを作成すると、パスワードを2回入力するように求められます。システムは、2つのパスワードが同じであることを確認します。

html5検証は、簡単にバイパスされるため、依存しないでください。特定のデータが処理または保存される前に、サーバー側の検証が必要です。

WordPressは、特定のタイプのデータを検証するためのいくつかの関数を提供します。開発者は通常、データ検証のために独自の機能を定義します。

  • :指定された文字列が電子メールアドレスであるかどうかを確認します。 is_email()
  • :渡されたデータが文字列であるかどうかを確認します。 is_serialized()

結論

データの浄化、検証、逃亡の概念とその重要性を理解しています。 WordPressテーマまたはプラグインを開発するときは、これらの機能を必ず含めてください。多くのプラグインは十分に開発されておらず、出力が逃げていないため、Webサイトは潜在的なXSS攻撃に対して脆弱になります。

faq(faq)

このセクションには、WordPressでのデータの浄化、脱出、および検証に関するよくある質問が含まれており、その重要性、作業方法、ベストプラクティス、およびWordPress関数を使用してこれらのセキュリティ対策を実装する方法をカバーしています。

以上がWordPressのデータの消毒、脱出、および検証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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