WordPress
WordPressのセキュリティ - サニタイズ
サーチ…
構文
- sanitize_text_field(文字列$ str)
- sanitize_title(文字列$ title、文字列$ fallback_title、文字列$ context)
- sanitize_email(文字列$ email)
- sanitize_html_class(string $ class、string $ fallback)
- sanitize_file_name(文字列$ name)
- sanitize_user(文字列$ username、ブール値$ strict)
備考
セキュリティは、開発時に常に留意する必要があります。セキュリティがなければ、アプリケーションはSQLインジェクション、XSS、CSRF、RFIなどのさまざまな攻撃に対して深刻な問題を引き起こす可能性があります。
信頼されていないデータは、多くのソース(ユーザー、サードパーティのサイト、独自のデータベース、...など)から来ており、すべてが入力と出力の両方で検証される必要があります。 (Sourse:WordPress Codex)
データは、用途と目的に応じて検証、消毒またはエスケープする必要があります。
検証するには、ユーザーに要求したデータが、送信したデータと一致することを確認します。 (Sourse:WordPress Codex)
サニタイズは、ユーザーデータを受け入れるアプローチの方が少し自由です。受け入れ可能な入力範囲がある場合、これらのメソッドを使用することに戻すことができます。 (Sourse:Wordpress Codex)
エスケープするには、既に持っている可能性のあるデータを取り出して、エンドユーザー向けにレンダリングする前にデータを保護することです。 (Sourse:WordPress Codex)
テキストフィールドのサニタイズ
$title = sanitize_text_field( $_POST['title'] );
サニタイズのタイトル
返される値は、人間が判読可能なタイトルではなく、URLでの使用に適していることを意図しています。代わりにsanitize_text_fieldを使用してください。
$new_url = sanitize_title($title);
電子メールをサニタイズする
$sanitized_email = sanitize_email(' [email protected]! ');
Sanitize htmlクラス
$post_class = sanitize_html_class( $post->post_title );
echo '<div class="' . $post_class . '">';
ファイル名をサニタイズする
$incfile = sanitize_file_name($_REQUEST["file"]);
include($incfile . ".php");
ファイル名をサニタイズせずに、攻撃者は単純にhttp:// attacker_site / malicous_pageを入力として渡し 、サーバーのコードを実行することができます。
ユーザー名をサニタイズする
$user = sanitize_user("attacker username<script>console.log(document.cookie)</script>");
サニタイズ後の$ userの値は "攻撃者のユーザー名"
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow