Hey Tony,
Few comments.
> + maintainer_rating text,
> + maintainer_release text,
Why text, why not a varchar of 100 characters. It doesn't matter that
much but it just optimizes our code a bit.
> - $versionName = addslashes($_REQUEST['versionName']);
> - $description = addslashes($_REQUEST['description']);
> - $webPage = addslashes($_REQUEST['webPage']);
> + $versionName = addslashes($_REQUEST['versionName']);
> + $keywords = $_REQUEST['keywords'];
> + $description = addslashes($_REQUEST['description']);
> + $webPage = addslashes($_REQUEST['webPage']);
> + $maintainer_rating = $_REQUEST['maintainer_rating'];
> + $maintainer_release = $_REQUEST['maintainer_release'];
> //did anything change?
> if ($VersionChanged)
> {
> $query = "UPDATE appVersion SET versionName = '".$versionName."', ".
> "keywords = '".$_REQUEST['keywords']."', ".
> "description = '".$description."', ".
> - "webPage = '".$webPage."'".
> + "webPage = '".$webPage."',".
> + "maintainer_rating = '".$maintainer_rating."',".
> + "maintainer_release = '".$maintainer_release."'".
> " WHERE appId = ".$_REQUEST['appId']." and versionId = ".$_REQUEST['versionId'];
> if (mysql_query($query))
> {
This is far from sql injection safe. Anyone can enter anything into
$_REQUEST['mantainer_release'] or $_REQUEST['mantainer_rating'] and
change any field from the appVersion table. It isn't a real problem in
this case because they can already change most fields as maintainer.
But they can for example change the versionId to make an app-version
belong to any application.
To prevent this we should make our queries with the compile_*_string
functions from include/db.php. That function is doing addslashes. And
generates an as safe as possible query string. Usage can be seen in
admin/editAppFamily.php.
Also query_appdb should be used instead of mysql_query().
And appId and versionId should always be check with is_numeric().
Right now without giving out details it's possible to change any
application as long as you are maintainer of one application.
Will you fix it or shall I?
Paul