Re: How to clean up extended charset or ASCII characters on form input?

From: Date: Wed, 12 Sep 2007 19:06:12 +0000
Subject: Re: How to clean up extended charset or ASCII characters on form input?
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-262039@lists.php.net to get a copy of this message
On 9/12/07, Eric Wood <eric@interplas.com> wrote: > I've searched of 21000 messages in this list and I don't quite understand how to best > protect user input. > > Let's say you have a form that posts to itself just do see how messed up data can get: http://php.net/filter has great easy to use functions. depending on the type of input, i use intval() which will guarantee me safely an integer. note that foo.php?bar=123x456 will produce 123456 (i think...) so you can't expect it will be what you want all the time. personally i would do this: 1) disable magic quotes 2) use filter_input() function to sanitize the input 3) then use intval() or perhaps regular expressions to scrub and normalize the input to its expected type i believe that will take care of everything you need. just remember that if you use any of this data again for SQL and such, you need to use mysql_escape_string() or other functions to escape the data - since you've disabled magic quotes. even if you didn't disable magic quotes it's always a good idea to use that before putting it in any type of query. there may be a need (you should test) to make sure that any parameters you pass [almost] directly to sql don't allow for SQL injection. i would think between the steps above that it can't but i haven't really sanity checked myself on the above :)

« previous php.general (#262039) next »