Re: How to clean up extended charset or ASCII characters on form input?
| From: | mike | 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 :)