Bird
Raised Fist0
PHPprogramming~5 mins

Input validation and sanitization in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is input validation in PHP?
Input validation is the process of checking if the data provided by the user meets the expected format, type, or rules before using it in the program.
Click to reveal answer
beginner
What does input sanitization mean?
Input sanitization means cleaning or modifying user input to remove or escape harmful characters to prevent security issues like SQL injection or cross-site scripting.
Click to reveal answer
beginner
Which PHP function can be used to check if an email is valid?
The function filter_var() with the FILTER_VALIDATE_EMAIL flag checks if an email address is valid.
Click to reveal answer
intermediate
How does htmlspecialchars() help in input sanitization?
htmlspecialchars() converts special characters to HTML entities, preventing malicious code from running in the browser.
Click to reveal answer
beginner
Why should you never trust user input directly?
User input can be incorrect or harmful. Validating and sanitizing input protects your program from errors and security attacks.
Click to reveal answer
Which PHP function is used to validate an integer input?
Afilter_var() with FILTER_VALIDATE_INT
Bhtmlspecialchars()
Ctrim()
Dstrtolower()
What does the PHP function trim() do?
AEscapes quotes in a string
BConverts special characters to HTML entities
CChecks if input is a valid email
DRemoves whitespace from the beginning and end of a string
Why is input sanitization important?
ATo change the input type
BTo prevent security risks like SQL injection and XSS
CTo make the input longer
DTo speed up the program
Which filter validates an email address in PHP?
AFILTER_VALIDATE_INT
BFILTER_SANITIZE_EMAIL
CFILTER_VALIDATE_EMAIL
DFILTER_SANITIZE_STRING
What is the main difference between validation and sanitization?
AValidation checks correctness; sanitization cleans input
BValidation cleans input; sanitization checks correctness
CBoth do the same thing
DNeither is needed for user input
Explain how you would validate and sanitize a user's email input in PHP.
Think about checking format first, then cleaning unwanted characters.
You got /3 concepts.
    Describe why input validation and sanitization are important for web security.
    Consider what could happen if you trust user input blindly.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of input validation in PHP?
      easy
      A. To check if the input data is correct and safe
      B. To store data in a database
      C. To display data on the screen
      D. To create new variables automatically

      Solution

      1. Step 1: Understand input validation

        Input validation means checking if the data entered by a user meets certain rules and is safe to use.
      2. Step 2: Identify the purpose

        The main goal is to ensure data is correct and safe before using it in the program.
      3. Final Answer:

        To check if the input data is correct and safe -> Option A
      4. Quick Check:

        Input validation = check correctness and safety [OK]
      Hint: Validation means checking data correctness and safety [OK]
      Common Mistakes:
      • Confusing validation with data storage
      • Thinking validation displays data
      • Assuming validation creates variables
      2. Which of the following is the correct syntax to sanitize an email input in PHP?
      easy
      A. $email = filter_var($_POST['email'], FILTER_SANITIZE_STRING);
      B. $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
      C. $email = filter_var($_POST['email'], FILTER_VALIDATE_INT);
      D. $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);

      Solution

      1. Step 1: Understand sanitization vs validation

        Sanitization cleans data by removing unwanted characters, validation checks if data is valid.
      2. Step 2: Identify correct filter for sanitizing email

        FILTER_SANITIZE_EMAIL removes illegal characters from email input.
      3. Final Answer:

        $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL); -> Option D
      4. Quick Check:

        Sanitize email = FILTER_SANITIZE_EMAIL [OK]
      Hint: Sanitize email uses FILTER_SANITIZE_EMAIL in filter_var() [OK]
      Common Mistakes:
      • Using FILTER_VALIDATE_EMAIL for sanitization
      • Using FILTER_VALIDATE_INT for email
      • Using FILTER_SANITIZE_STRING for email
      3. What will be the output of this PHP code?
      $input = "";
      $clean = filter_var($input, FILTER_SANITIZE_STRING);
      echo $clean;
      medium
      A. alert('Hi');</script>
      B. <script>alert('Hi');</script>
      C. alert('Hi');
      D. Syntax error

      Solution

      1. Step 1: Understand FILTER_SANITIZE_STRING behavior

        This filter removes tags and encodes or strips HTML tags from the string.
      2. Step 2: Apply filter to input

        The input contains a script tag; sanitizing removes the <script> and </script> tags, leaving only "alert('Hi');".
      3. Final Answer:

        alert('Hi'); -> Option C
      4. Quick Check:

        Sanitize string removes tags = alert('Hi'); [OK]
      Hint: FILTER_SANITIZE_STRING removes HTML tags from input [OK]
      Common Mistakes:
      • Expecting tags to remain
      • Confusing sanitization with validation
      • Thinking code runs or causes error
      4. Identify the error in this PHP code snippet for validating an integer input:
      $age = $_POST['age'];
      if (filter_var($age, FILTER_SANITIZE_INT)) {
          echo "Valid age";
      } else {
          echo "Invalid age";
      }
      medium
      A. Missing semicolon after echo statements
      B. FILTER_SANITIZE_INT should be FILTER_VALIDATE_INT
      C. Using $_POST without quotes
      D. filter_var() cannot validate integers

      Solution

      1. Step 1: Understand difference between sanitize and validate

        FILTER_SANITIZE_INT cleans input by removing non-numeric characters but does not validate if input is a valid integer.
      2. Step 2: Correct filter for validation

        To check if input is a valid integer, use FILTER_VALIDATE_INT instead of FILTER_SANITIZE_INT.
      3. Final Answer:

        FILTER_SANITIZE_INT should be FILTER_VALIDATE_INT -> Option B
      4. Quick Check:

        Validation needs FILTER_VALIDATE_INT, not sanitize [OK]
      Hint: Use FILTER_VALIDATE_INT to check integers, not sanitize [OK]
      Common Mistakes:
      • Confusing sanitize with validate filters
      • Ignoring filter_var() return values
      • Assuming sanitize validates input
      5. You want to accept a username that only contains letters, numbers, and underscores. Which PHP code correctly validates this input using filter_var() and a custom pattern?
      hard
      A. $username = $_POST['username']; if (filter_var($username, FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => '/^[a-zA-Z0-9_]+$/']])) { echo "Valid username"; } else { echo "Invalid username"; }
      B. $username = $_POST['username']; if (filter_var($username, FILTER_SANITIZE_STRING)) { echo "Valid username"; } else { echo "Invalid username"; }
      C. $username = $_POST['username']; if (filter_var($username, FILTER_VALIDATE_EMAIL)) { echo "Valid username"; } else { echo "Invalid username"; }
      D. $username = $_POST['username']; if (filter_var($username, FILTER_VALIDATE_INT)) { echo "Valid username"; } else { echo "Invalid username"; }

      Solution

      1. Step 1: Understand the requirement

        The username must only have letters, numbers, and underscores, so a regular expression is needed to check this pattern.
      2. Step 2: Use FILTER_VALIDATE_REGEXP with correct pattern

        FILTER_VALIDATE_REGEXP allows validating input against a regex pattern. The pattern '/^[a-zA-Z0-9_]+$/' matches only allowed characters.
      3. Step 3: Eliminate distractors

        The incorrect options use filters for integer validation, string sanitization, or email validation, none of which enforce the specific pattern of letters, numbers, and underscores.
      4. Final Answer:

        Code using FILTER_VALIDATE_REGEXP with pattern '/^[a-zA-Z0-9_]+$/' -> Option A
      5. Quick Check:

        Validate username with FILTER_VALIDATE_REGEXP + regex [OK]
      Hint: Use FILTER_VALIDATE_REGEXP with regex for custom pattern validation [OK]
      Common Mistakes:
      • Using sanitize instead of validate
      • Using email or int filters for username
      • Not using regex for pattern matching
      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