ciao a tutti, in una chat e nello specifico nel file insert.php che inserisce i messaggi che gli utenti inviano, c'è un punto per il quale mi è stato detto che sarebbe meglio torvare un modo più sicuro per far passare i dati, posto il file:
Codice PHP:
<?
$back_ctrl=1; // quanti messaggi deve verificare per evitare il doppio inserimento (gli ultimi N messaggi)
if(!isset($_GET['hideSubmit']))
{
echo "
<script language=\"javascript\">
alert(\"Non hai i permessi per accedere a questa pagina\");
</script>
";
exit;
}
?>
<html>
<head>
<title>Inserimento del messaggio</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
include("config.php");
$nick=$_GET['nick'];
$password=$_GET['password'];
$messaggio=$_GET['messaggio'];
$messaggio=stripslashes($messaggio);/*elimina gli slashes aggiunti con addslashes*/
$messaggio=str_replace("\n"," ",$messaggio);/*sostituisce gli a capo con degli spazi nel messaggio*/
$commento="[".date("H:i - d/m/Y")."] ".$nick."|".$messaggio."\n"; if ( !empty($_GET['indirizzo_faccina']) ) $commento = "[em".$_GET['indirizzo_faccina']."] ".$commento ;
$indrizzo_faccina = (isset($_GET['indirizzo_faccina'])) ? $_GET['indirizzo_faccina'] : '';
$url = "http://www.miosito.it/cartella/chat.php?nick=$nick&password=$password&indirizzo_faccina=$indirizzo_faccina";
$cercamsg = strstr($messaggio,"<");/*trova la prima occorrenza di < nel
messaggio*/
$cercamsg2 = strstr($messaggio,">");/*trova la prima occorenza di > nel
messaggio*/
if (empty($messaggio))
{
Header("Location: $url");
}
elseif ($cercamsg && $cercamsg2)
{
Header("Location: $url");
}
else
{
$chk_file=file($file_mess);
$status=0;
for ($x=count($chk_file)-$back_ctrl;$x<count($chk_file);$x++)
{
list($data_nick,$chk_msg)=explode("|",$chk_file[$x]);
list($em,$chk_data,$chk_nick)=explode("] ",$data_nick);
if ( trim($chk_msg) == trim($messaggio) && trim($nick)==trim($chk_nick) ) $status = 1;
//echo " nick utilizzato= ".$nick." e nick di verifica = $chk_nick
";
}
if ($status == 0)
{
$apri_file=fopen($file_mess,"a+");
fputs($apri_file,$commento);
fclose($apri_file);
Header("Location: $url");
}
else
{
Header("Location: $url");
}
}
?>
</body>
</html>
per precisione il punto da sistemare sarebbe questo:
Codice PHP:
$url = "http://www.miosito.it/cartella/chat.php?nick=$nick&password=$password&indirizzo_faccina=$indirizzo_faccina";
praticamente nella barra delle info sotto compare sia il nick che la password è possibile evitare questo? grazie.