> From: "Sebastian" <[EMAIL PROTECTED]>

> just a question, what is the best way to sanitize your scripts when you're
> using $_GET or $_REQUEST in a query?
> 
> eg, i usually just do:
> 
> if(is_numeric($_REQUEST['id']))
> {
>     mysql_query("SELECT id FROM table WHERE
> id=".intval($_REQUEST['id'])."");
> }
> 
> what about when the GET is text? just use htmlspecialchars?
> just looking for some advice to help keep my apps secure.

Sanitize it for what? Insertion into the database? Displaying to a user? 
Putting into an email? file? xml? 

There's no one solution for sanitizing, it's all a matter of what you're doing 
with the data and what you expect the data to be. If you expect the data to be 
an integer, then make it an integer.

$input['value'] = (int)$_GET['value'];

Now you can range check it or whatever. is_numeric() works, but will accept 
floating point and scientific numbers, by the way. 

You need addslashes() (or mysql_real_escape_string(), if appropriate) for text 
data going into the database. 

htmlspecialchars() or htmlentities() is appropriate for text that'll be shown 
to users on a web site. 

Text going into the headers of an email should normally be filtered for 
newlines so malicious users cannot inject additional headers. 

Shall I go on?? ;) 

---John Holmes...

UCCASS - PHP Survey System
http://www.bigredspark.com/survey.html

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to