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);
?>
No comments:
Post a Comment