I have a lot of user inputs from $_GET
and $_POST
... At the moment I always write mysql_real_escape_string($_GET['var'])
..
I would like to know whether you could make a function that secures, escapes and cleans the $_GET
/$_POST
arrays right away, so you won't have to deal with it each time you are working with user inputs and such.
I was thinking of an function, e.g cleanMe($input)
, and inside it, it should do mysql_real_escape_string
, htmlspecialchars
, strip_tags
, stripslashes
(I think that would be all to make it clean & secure) and then return the $input
.
So is this possible? Making a function that works for all $_GET
and $_POST
, so you would do only this:
$_GET = cleanMe($_GET);
$_POST = cleanMe($_POST);
So in your code later, when you work with e.g $_GET['blabla']
or $_POST['haha']
, they are secured, stripped and so on?
Tried myself a little:
function cleanMe($input) {
$input = mysql_real_escape_string($input);
$input = htmlspecialchars($input, ENT_IGNORE, 'utf-8');
$input = strip_tags($input);
$input = stripslashes($input);
return $input;
}
You're looking for
filter_input_array()
. However, I suggest only using that for business-style validation/sanitisation and not SQL input filtering.For protection against SQL injection, use parametrised queries with mysqli or PDO.