Showing posts with label Security. Show all posts
Showing posts with label Security. Show all posts

Saturday, April 7, 2012

Sanitize Database Inputs

Sanitize Database Inputs

 

1) Function for stripping out malicious bits

<?php
function cleanInput($input) {

  $search = array(
    '@<script[^>]*?>.*?</script>@si',   // Strip out javascript
    '@<[\/\!]*?[^<>]*?>@si',            // Strip out HTML tags
    '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly
    '@<![\s\S]*?--[ \t\n\r]*>@'         // Strip multi-line comments
  );

    $output = preg_replace($search, '', $input);
    return $output;
  }
?>

2) Sanitization function

Uses the function above, as well as adds slashes as to not screw up database functions.

function sanitize($var){
    if(is_array($var)){
        return array_map('sanitize',$var);
    }
    else{
        if(get_magic_quotes_gpc()){
            $var = stripslashes($var);
        }
        $var = mysql_real_escape_string($var);
        $var  = cleanInput($var);
        return $var;
    }
}

Usage

<?php
  $bad_string = "Hi! <script src='http://www.evilsite.com/bad_script.js'></script> It's a good day!";
  $good_string = sanitize($bad_string);
  // $good_string returns "Hi! It\'s a good day!"

  // Also use for getting POST/GET variables
  $_POST = sanitize($_POST);
  $_GET  = sanitize($_GET);
?>