Salve ragazzi...
Purtroppo ho notato una grave falla su un mio script creato per la lettura dei messaggi...
Codice PHP:
<body>
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...
//verifico se esiste la variabile id
if(isset($_GET['id']) OR $_GET['id'] != ""){
$id=$_GET['id'];
}
//mi connetto al datase
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono il database
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
$sql="SELECT id,nome_inviante,nome_ricevente,messaggio,date,datamessaggio,oramessaggio,emailinviante FROM messaggi WHERE id='".$id."' ORDER BY date";
$query=@mysql_query($sql) or die (mysql_error());
while ($array=mysql_fetch_array($query))
{
echo "Messaggio da :".$array['nome_inviante']."</a>
Ricevuto ".$array['datamessaggio']." alle ore ".$array['oramessaggio']."
<img class=\"barradivisione88\" src=\"pulsantinoinvia.png\">
".$array['messaggio']." ";
$iddaeliminare=$array['id'];
echo"
<a target=\"contenuto\" href=\"inviamessaggio.php?destinatario=".$array['nome_inviante']."&email=".$array['emailinviante']."\" class=\"nolinea\"\">Rispondi al messaggio</a>
<form method=\"post\" action=\"eliminamess.php\">
<input type=\"hidden\" size=\"1\" name=\"iddaeliminare\" value=\"$iddaeliminare\" />
<input type=\"submit\" value=\"Elimina messaggio\"></form>
";}
il link che compone questa pagina è cosi'
letturaposta.php?id=4
e qui sorge la falla...se io modifico nella barra degli indirizzi id=4 con id=5 o id=6 ect...
leggo i messaggi relativi a quell id anche se non fanno parte della mia posta in arrivo....
Io dovrei fare in modo di poter leggere solo i messaggi che fanno parte della mia posta in arrivo...quindi se per esempio id=5 e un messaggio ch ela riguarda la posta in arrivo di nicola io non devo poterlo leggere....come faccio a fare questo controllo..?