Re: Hello

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Karl DeSaulniers wrote:
Hi Chris,

On Dec 14, 2009, at 8:09 PM, Chris wrote:


Problem 1 is sql injection. Wrap each variable in a mysql_real_escape_string call:

insert into table (...) values ('" . mysql_real_escape_string($username) . "' ....

At one point I did have the mysql_real_escape_string() and it worked the same as without as far as populating the database.

Did you try names with single quotes? (Tim O'Reilly is a common example to try).

But when I would view results, it didnt read anything from the database.

Sure it went in? Did you see the data when you viewed the table in phpmyadmin or some other tool?


Again you need to escape all your data (except $min, $max_results - just make sure they are always integers).

Those are so I can control the number of items shown per page.

I realise that. mysql_real_escape_string is used for data in your query, and may cause problems if used in limit clauses. If you end up with this for example:

select * from table limit mysql_real_escape_string('blah');

of course it's not going work.

Hence the check to make sure $min and $max_results are int's before passing them to the query so if anyone messes with them it won't break your queries.

if (!is_int($min)) {
  $min = 0;
}

if (!is_int($max_results)) {
  $max_results = 5;
}

Basically the result page would not show anything in the database unless it was inserted in the database using the $_POST method.

That still suggests an error with the insert.

--
Postgresql & php tutorials
http://www.designmagick.com/


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


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux