Κανόνες για πρόληψη Cross-Site Scripting Attacks (XSS) attacks.
- Validate on input
- Data validation
- Με reqular expressions
Π.χ. preg_match
// validate a US phone number if (preg_match('/^((1-)?\d{3}-)\d{3}-\d{4}$/', $phone)) { echo $phone . " is valid format.";}
- Με συναρτήσεις της γλώσσας προγραμματισμού
Π.χ. trim, empty
// validate comment $comment = trim($_POST["comment"]); if (empty($comment)) { exit("must provide a comment"); }
- Από php 5.2 και μετά με την συνάρτηση filter_var() με validation filters
Π.χ. filter_var()
// The FILTER_VALIDATE_INT filter validates value as integer. $item['id'] = filter_var($id,FILTER_VALIDATE_INT);
- Με reqular expressions
- Data sanitization / normalization
- Με συναρτήσεις της γλώσσας προγραμματισμού όπως η strip_tags, η preg_replace κ.α.
Π.χ. strip_tags
// sanitize HTML from the comment $comment = strip_tags($_POST["comment"]);
// normalize and validate a US phone number $phone = preg_replace('/[^\d]/', "", $phone); $len = strlen($phone); if ($len == 7 || $len == 10 || $len == 11) { echo $phone . " is valid format."; }
- Από php 5.2 και μετά με την συνάρτηση filter_var() με sanitization filters
Π.χ. filter_var()
// The FILTER_SANITIZE_NUMBER_INT filter removes all illegal characters from a number. $item['id'] = filter_var($id, FILTER_SANITIZE_NUMBER_INT);
- Με συναρτήσεις της γλώσσας προγραμματισμού όπως η strip_tags, η preg_replace κ.α.
- Data validation
- Escape on output
- Output escaping
- Με συναρτήσεις της γλώσσας προγραμματισμού όπως η htmlspecialchars()
Π.χ. htmlspecialchars()
Instead of: echo $name; Use: echo htmlspecialchars($name, ENT_NOQUOTES, 'UTF-8');
- Με συναρτήσεις της γλώσσας προγραμματισμού όπως η htmlspecialchars()
- Output escaping