Key points of PHP Security Protection-PHP Tutorial

Source: Internet
Author: User
Tags form post tainted
Key points of PHP security protection. The first thing that must be realized about Web application security is that external data should not be trusted. External data (outsidedata) includes not directly input by programmers in PHP code.

The first thing that must be realized about Web application security is that external data should not be trusted. External data includes any data that is not directly input by programmers in PHP code. Before taking measures to ensure security, any data from any other source (such as GET variables, form POST, database, configuration file, session variables, or cookies) is untrusted.

For example, the following data elements can be considered safe because they are set in PHP.

PHP Security Protection List 1. flawless code

 
 
  1. < ?php
  2. $myUsername = ‘tmyer’;
  3. $arrayarrayUsers = array
    (’tmyer’, ‘tom’, ‘tommy’);
  4. define(”GREETING”, ‘hello
    there’ . $myUsername);
  5. ?>

However, the following data elements are flawed.

PHP Security Protection List 2. insecure and defective code

 
 
  1. < ?php
  2. $myUsername = $_POST[’username’];
    //tainted!
  3. $arrayarrayUsers = array($my
    Username, ‘tom’, ‘tommy’);
    //tainted!
  4. define(”GREETING”, ‘hello there’
    . $myUsername); //tainted!
  5. ?>

Why is the first variable $ myUsername defective? Because it is directly from form POST. You can enter any strings in this input field, including malicious commands used to clear files or run previously uploaded files.

You might ask, "isn't it possible to avoid this risk using a client that only accepts letters of A-Z (Javascr into pt) form validation script ?" Yes, this is always a good step, but as you will see later, anyone can download any form to their machine and modify it, then resubmit any content they need.

The solution is simple: you must run the cleanup code on $ _ POST ['username. Otherwise, $ myUsername may be contaminated at any other time (such as in an array or constant.

A simple method for clearing user input is to use a regular expression to process it. In this example, only letters are allowed. It may be a good idea to limit a string to a specific number of characters, or to require that all letters be in lowercase.

PHP Security Protection List 3. making user input secure

 
 
  1. < ?php
  2. $myUsername = cleanInput($_
    POST[’username’]); //clean!
  3. $arrayarrayUsers = array(
    $myUsername, ‘tom’, ‘tommy’); //clean!
  4. define(”GREETING”, ‘hello
    there’ . $myUsername); //clean!
  5. function cleanInput($input){
  6. $clean = strtolower($input);
  7. $clean = preg_replace(”/[^a-z]
    /”, “”, $clean);
  8. $clean = substr($clean,0,12);
  9. return $clean;
  10. }
  11. ?>

The above are some tips for PHP security protection.


The first thing that must be recognized for the security of Web applications is that external data should not be trusted. External data includes not directly input by programmers in PHP code...

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.