Bird
Raised Fist0
Wordpressframework~10 mins

Data sanitization in Wordpress - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to sanitize a text field input in WordPress.

Wordpress
$safe_text = [1]($_POST['user_input']);
Drag options to blanks, or click blank then click option'
Asanitize_text_field
Bwp_kses_post
Cesc_html
Dsanitize_email
Attempts:
3 left
💡 Hint
Common Mistakes
Using esc_html instead of sanitize_text_field for input sanitization.
Using sanitize_email for non-email text fields.
2fill in blank
medium

Complete the code to allow safe HTML tags in user input using WordPress functions.

Wordpress
$allowed_html = array('a' => array('href' => array()));
$safe_html = [1]($_POST['content'], $allowed_html);
Drag options to blanks, or click blank then click option'
Asanitize_text_field
Bwp_kses
Cesc_attr
Dsanitize_email
Attempts:
3 left
💡 Hint
Common Mistakes
Using sanitize_text_field which strips all HTML.
Using esc_attr which escapes for attributes, not sanitizing HTML.
3fill in blank
hard

Fix the error in sanitizing an email input in WordPress.

Wordpress
$email = [1]($_POST['email']);
Drag options to blanks, or click blank then click option'
Awp_kses_post
Bsanitize_text_field
Cesc_html
Dsanitize_email
Attempts:
3 left
💡 Hint
Common Mistakes
Using sanitize_text_field which may allow invalid email characters.
Using esc_html which escapes output but does not sanitize input.
4fill in blank
hard

Fill both blanks to sanitize and then escape a URL input safely.

Wordpress
$url = [1]($_POST['website']);
$escaped_url = [2]($url);
Drag options to blanks, or click blank then click option'
Aesc_url_raw
Bsanitize_text_field
Cesc_url
Dsanitize_email
Attempts:
3 left
💡 Hint
Common Mistakes
Escaping before sanitizing input.
Using sanitize_email for URLs.
5fill in blank
hard

Fill all three blanks to sanitize a checkbox input and safely use it in HTML.

Wordpress
$checked = isset($_POST['agree']) ? [1]($_POST['agree']) : 0;
$checked = $checked ? 1 : 0;
echo '<input type="checkbox"' . ($checked ? ' ' . [2]("checked") : '') . ' />';
$label = '[3]';
Drag options to blanks, or click blank then click option'
Aabsint
Besc_attr
CI agree to terms
Dsanitize_text_field
Attempts:
3 left
💡 Hint
Common Mistakes
Not converting checkbox input to integer.
Not escaping attribute values.
Using unsanitized label text.

Practice

(1/5)
1. What is the main purpose of data sanitization functions in WordPress?
easy
A. To clean user input and prevent security issues like XSS
B. To speed up database queries
C. To format dates and times for display
D. To compress images before upload

Solution

  1. Step 1: Understand data sanitization role

    Data sanitization cleans user input to remove harmful code or characters.
  2. Step 2: Identify security benefits

    This prevents attacks like Cross-Site Scripting (XSS) by filtering input.
  3. Final Answer:

    To clean user input and prevent security issues like XSS -> Option A
  4. Quick Check:

    Data sanitization = Prevent security issues [OK]
Hint: Sanitize input to stop harmful code before saving [OK]
Common Mistakes:
  • Confusing sanitization with validation
  • Thinking sanitization speeds up queries
  • Assuming sanitization formats output
2. Which WordPress function is used to sanitize a text field input?
easy
A. wp_kses_post()
B. esc_html()
C. sanitize_text_field()
D. sanitize_email()

Solution

  1. Step 1: Identify function purpose

    sanitize_text_field() cleans plain text input by stripping tags and harmful characters.
  2. Step 2: Compare other functions

    esc_html() escapes HTML for output, wp_kses_post() allows safe HTML, sanitize_email() cleans emails.
  3. Final Answer:

    sanitize_text_field() -> Option C
  4. Quick Check:

    Text field sanitization = sanitize_text_field() [OK]
Hint: Use sanitize_text_field() for plain text inputs [OK]
Common Mistakes:
  • Using esc_html() instead of sanitize_text_field() for input
  • Confusing sanitize_email() with text sanitization
  • Using wp_kses_post() when no HTML is allowed
3. What will be the output of this code snippet?
 $input = "Hello";
$clean = sanitize_text_field($input);
echo $clean;
medium
A. alert('Hi');Hello
B. <script>alert('Hi');</script>Hello
C. alert('Hi');
D. Hello

Solution

  1. Step 1: Understand sanitize_text_field() behavior

    This function strips HTML tags and encodes special characters, removing <script> tags.
  2. Step 2: Apply to input string

    Input has a script tag and text 'Hello'. After sanitization, only 'Hello' remains.
  3. Final Answer:

    Hello -> Option D
  4. Quick Check:

    sanitize_text_field() removes tags = Hello [OK]
Hint: sanitize_text_field() removes all HTML tags [OK]
Common Mistakes:
  • Expecting script tags to be escaped, not removed
  • Confusing sanitize_text_field() with esc_html()
  • Thinking output includes script content
4. Identify the error in this code snippet that sanitizes a URL input:
 $url = $_POST['website'];
$clean_url = sanitize_text_field($url);
if (filter_var($clean_url, FILTER_VALIDATE_URL)) {
  echo 'Valid URL';
} else {
  echo 'Invalid URL';
}
medium
A. sanitize_text_field() removes URL characters, causing validation to fail
B. filter_var() is not suitable for URL validation
C. $_POST['website'] should be sanitized with sanitize_email()
D. No error, code works correctly

Solution

  1. Step 1: Analyze sanitize_text_field() effect on URL

    This function strips tags and encodes, which can remove or alter URL characters like ':' and '/'.
  2. Step 2: Check filter_var() validation

    filter_var() expects a proper URL format, but altered URL fails validation.
  3. Final Answer:

    sanitize_text_field() removes URL characters, causing validation to fail -> Option A
  4. Quick Check:

    sanitize_text_field() breaks URLs = sanitize_text_field() removes URL characters, causing validation to fail [OK]
Hint: Use esc_url_raw() for URLs, not sanitize_text_field() [OK]
Common Mistakes:
  • Using sanitize_text_field() for URLs
  • Assuming filter_var() can't validate URLs
  • Not sanitizing input before validation
5. You want to save user-submitted HTML content safely in WordPress. Which combination of functions should you use to sanitize and then safely display the content?
hard
A. Use sanitize_text_field() to sanitize and echo with wp_kses_post()
B. Use wp_kses_post() to sanitize and echo with esc_html()
C. Use wp_kses_post() to sanitize and echo directly without escaping
D. Use sanitize_email() to sanitize and echo with esc_attr()

Solution

  1. Step 1: Choose sanitizer for HTML content

    wp_kses_post() allows safe HTML tags and removes harmful ones, ideal for user HTML input.
  2. Step 2: Escape output for safe display

    Using esc_html() escapes HTML entities to prevent XSS when displaying content.
  3. Step 3: Combine sanitization and escaping

    Sanitize input with wp_kses_post(), then escape output with esc_html() for safety.
  4. Final Answer:

    Use wp_kses_post() to sanitize and echo with esc_html() -> Option B
  5. Quick Check:

    Sanitize HTML input + escape output = Use wp_kses_post() to sanitize and echo with esc_html() [OK]
Hint: Sanitize HTML with wp_kses_post(), escape output with esc_html() [OK]
Common Mistakes:
  • Using sanitize_text_field() which strips all HTML
  • Echoing sanitized HTML without escaping
  • Using sanitize_email() for HTML content
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard