Thanks for the help, and pointing out the security risk, Chris & David!
Regards, Frank ----- Original Message ----- From: "Chris Shiflett" <[EMAIL PROTECTED]> To: "David Otton" <[EMAIL PROTECTED]>; "Frank Keessen" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Saturday, November 15, 2003 11:05 PM Subject: Re: [PHP] Parse error? > --- David Otton <[EMAIL PROTECTED]> wrote: > > I can't be bothered to figure out a test case, but you apparently have > > a SQL injection risk with your code. You're assuming that the data from > > the client is correct. > > This is a very good point. To highlight an example in the sample code you > provided (that David is referencing, I assume), look at the following: > > > foreach ($_POST['accomodatieid'] as $Key => $Value) > > { > > $query = "INSERT INTO ttra (reisid, accomodatieid) > > VALUES ($id2, $Value)"; > > $result = mysql_query ($query) > > You're using values from $_POST (which can be anything, since it's data > supplied by a user, potentially a malicious one) directly in the SQL > statement that you send to MySQL. This grants a lot of power and > flexibility to the user, which is very dangerous. > > In addition, you loop through $_POST, so that even unexpected data might > be used. This is even worse than expected data with an unexpected format. > > To fix this, assign the data you find in $_POST to another variable (or > array) once you determine that it is valid. For example: > > $safe = array(); > if ($_POST['foo'] is valid data) > { > $safe['foo'] = $_POST['foo']; > } > > Then, you can use the $safe array, and only a flaw in your data filtering > (whatever code you use for "is valid data" above) will create the same > security hole that you currently have. > > Hope that helps. > > Chris > > ===== > Chris Shiflett - http://shiflett.org/ > > PHP Security Handbook > Coming mid-2004 > HTTP Developer's Handbook > http://httphandbook.org/ > RAMP Training Courses > http://www.nyphp.org/ramp > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php