What does XSS stand for and why is it dangerous in WordPress?
XSS stands for Cross-Site Scripting. It is dangerous because attackers can inject harmful scripts into web pages viewed by other users, stealing data or hijacking sessions.
Click to reveal answer
beginner
Which WordPress function should you use to safely output data in HTML to prevent XSS?
Use esc_html() to safely output data inside HTML content, escaping harmful characters to prevent XSS.
Click to reveal answer
intermediate
How does esc_attr() help in XSS prevention?
esc_attr() escapes data before placing it inside HTML attributes, stopping attackers from injecting scripts via attributes.
Click to reveal answer
beginner
Why should you never trust user input directly in WordPress?
User input can contain malicious code. Always sanitize and escape it before use to prevent XSS and other attacks.
Click to reveal answer
intermediate
What is the difference between sanitizing and escaping in WordPress XSS prevention?
Sanitizing cleans input data before saving it. Escaping cleans data before outputting it. Both protect against XSS but at different stages.
Click to reveal answer
Which WordPress function escapes data for safe use inside HTML attributes?
Aesc_html()
Besc_attr()
Csanitize_text_field()
Dwp_kses()
✗ Incorrect
esc_attr() is used to escape data inside HTML attributes to prevent XSS.
What is the main purpose of wp_kses() in WordPress?
ATo sanitize input by allowing only certain HTML tags
BTo escape data for JavaScript output
CTo encrypt user passwords
DTo minify CSS files
✗ Incorrect
wp_kses() filters input to allow only safe HTML tags, helping prevent XSS.
When should you escape data in WordPress to prevent XSS?
AOnly when receiving data from the user
BOnly when saving data to the database
CRight before outputting it to the browser
DNever, WordPress does it automatically
✗ Incorrect
Escaping should happen right before output to ensure data is safe for that context.
Which function is best to sanitize a plain text input before saving it?
Asanitize_text_field()
Besc_html()
Cesc_attr()
Dwp_nonce_field()
✗ Incorrect
sanitize_text_field() cleans plain text input before saving to prevent harmful data.
What is a common sign of an XSS vulnerability in WordPress?
AThe admin dashboard is inaccessible
BThe site loads slowly
CImages do not display
DUser input is shown on the page without escaping
✗ Incorrect
Showing user input without escaping can allow attackers to inject scripts, causing XSS.
Explain how you would prevent XSS attacks when displaying user comments in WordPress.
Think about both input cleaning and output escaping.
You got /4 concepts.
Describe the difference between sanitizing and escaping in WordPress and when to use each.
Consider the data flow from user input to display.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of XSS prevention in WordPress?
easy
A. To improve SEO rankings
B. To speed up website loading time
C. To stop harmful scripts from running on your website
D. To add more images to your site
Solution
Step 1: Understand what XSS means
XSS stands for Cross-Site Scripting, which allows attackers to run harmful scripts on your site.
Step 2: Identify the goal of prevention
The goal is to stop these harmful scripts from running to protect users and the site.
Final Answer:
To stop harmful scripts from running on your website -> Option C
Quick Check:
XSS prevention = stop harmful scripts [OK]
Hint: XSS prevention blocks bad scripts from running [OK]
Common Mistakes:
Thinking XSS prevention improves speed
Confusing XSS with SEO improvements
Believing it adds content automatically
2. Which WordPress function is used to safely escape text before outputting it to prevent XSS?
easy
A. esc_html()
B. wp_kses_post()
C. sanitize_text_field()
D. wp_enqueue_script()
Solution
Step 1: Identify escaping functions for output
esc_html() escapes text for safe HTML output, preventing scripts from running.
Step 2: Differentiate from other functions
wp_kses_post() allows some HTML, sanitize_text_field() cleans input, wp_enqueue_script() loads scripts.
Final Answer:
esc_html() -> Option A
Quick Check:
Escape text output = esc_html() [OK]
Hint: Use esc_html() to escape text output safely [OK]
Common Mistakes:
Using sanitize_text_field() for output escaping
Confusing wp_kses_post() with esc_html()
Thinking wp_enqueue_script() escapes text
3. What will be the output of this code snippet if user input is <script>alert('XSS')</script>?
<?php
echo esc_html($_GET['input']);
?>
medium
A. PHP error
B. (runs alert)
C. Empty output
D. <script>alert('XSS')</script> (shown as text)
Solution
Step 1: Understand esc_html() effect
esc_html() converts special HTML characters to safe text, so tags show as text, not code.
Step 2: Predict output with given input
The script tags will be shown as <script>alert('XSS')</script> literally, not executed.
Final Answer:
<script>alert('XSS')</script> (shown as text) -> Option D
Quick Check:
esc_html() escapes tags to text [OK]
Hint: esc_html() shows tags as text, not code [OK]
Common Mistakes:
Thinking script runs despite escaping
Expecting empty output
Assuming PHP error occurs
4. Identify the error in this code that tries to prevent XSS: