I'm concerned about the security of my code. Here are some exceprts of an Open Source Gallery System. (If you're really ambitious or want more background information the site is at http://galant.night4554.com )
$query = "SELECT * FROM " . $tblpre . "galleries WHERE id = '$photo[gal_id]' LIMIT 1";
$temp = mysql_query($query) or err_report($query);
===============================
$query="UPDATE users SET
username = '$params[username]',
pub_mail = '$params[pub_mail]',
priv_mail = '$params[priv_mail]',
aim = '$params[aim]',
yim = '$params[yim]',
msn = '$params[msn]',
icq = '$params[icq]',
website = '$params[website]',
profile = '$params[profile]',
birthday = '$new_birthday',
real_name = '$params[real_name]',
occupation = '$params[occupation]',
interests = '$params[interests]',
address1 = '$params[address1]',
address2 = '$params[address2]',
city = '$params[city]',
state = '$params[state]',
zip = '$params[zip]',
country = '$params[country]'
WHERE id = '$_SESSION[id]'";
$temp=mysql_query($query) or err_report($query);
===============================
if(($_POST[submit])&&(!isset($_POST[type])))
{
$query = "Select id
FROM users
WHERE username = '$_POST[username]'
AND password = md5('$_POST[password]')
LIMIT 1";
$id = sing_result($query);
$query = "Select username
FROM users
WHERE username = '$_POST[username]'
AND id = '$id'
AND password = md5('$_POST[password]')
LIMIT 1";
$user = sing_result($query);
$query = "Select user_level
FROM users
WHERE username = '$user'
AND id = '$id'
AND password = md5('$_POST[password]')
LIMIT 1";
$user_level = sing_result($query);
if(!empty($id)&&($user == $username)&&(isset($user_level)))
{
$mode="logged";
}
}
elseif(($_POST[submit])&&($_POST[type]))
{
$query="SELECT password FROM gallery_galleries WHERE id = '$_POST[gal_id]' LIMIT 1";
$thisgalpass = sing_result($query);
if($thisgalpass == $_POST[password])
{
$mode="galpassed";
}
}
switch($mode)
{
case "logged":
{
session_register("id");
session_register("user_level");
if($_POST[cookie])
{
$loginarray[username]=md5($_POST[username]);
$loginarray[pass]=md5($_POST[password]);
@setcookie("$config[cookie_name]", serialize($loginarray), "$config[cookie_length]",
"$config[cookie_path]", "$config[cookie_domain]");
}
if(isset($_POST[gal]))
{
session_unregister("redirect");
header("Location: view_gallery.php?gal=".$_POST[gal]);
exit;
}
if(!empty($_SESSION['redirect']))
{
$go=$_SESSION['redirect'];
session_unregister("redirect");
header("Location: ".$go);
exit;
}
else
{
header("Location: view_album.php");
exit;
}
break;
}
I know, I know. I have a lot of problems in regard to security. Can you point me at them?