Buongiorno a tutti,
programmo ogni tanto in php e questo forum spesso mi ha dato una grande mano. Ne approfitto nuovamente. Vorrei capire, una volta per tutte, se è possibile realizzare una semplice pagina di login che sia sicura ed intaccabile.
Finora ho utilizzato questa filosofia:
PAGINA DI LOGIN
<FORM METHOD="post">
Nome: <INPUT TYPE="text" SIZE=50 NAME="User">
Pwd: <INPUT TYPE="password" SIZE=50 NAME="Pwd">
<INPUT TYPE="submit" NAME="submit" VALUE="Submit!">
</FORM>
<?php
if (isset($_POST['User']))
{
session_start();
$User = $_POST['User'];
$Pwd = $_POST['Pwd'];
$_SESSION['user'] = $_POST['User'];
$_SESSION['password'] = $_POST['Pwd'];
$db = mysql_connect('HOST', 'DB_USER, 'DB_PWD') or die ("<h1
style='color:#FF0000'>Connessione non riuscita: </h1>" . mysql_error());
mysql_select_db('NOME_DB);
$query = "SELECT pwd FROM tab_utenti WHERE Nome = '$User'";
$result = mysql_query($query);
$name_row = mysql_fetch_row($result)
if (!($name_row = mysql_fetch_row($result)) or ($Pwd<>$name_row[0]))
{
PWD ERRATA
}
Else
{
VAI ALLA HOME
}
}
?>
Tutte le altre pagine hanno invece all’inizio queste righe:
TUTTE LE ALTRE PAGINE
<?php
session_start();
$User = $_SESSION['user'];
$Pwd = $_SESSION['password'];
$db = mysql_connect('HOST', 'DB_USER, 'DB_PWD') or die ("<h1
style='color:#FF0000'>Connessione non riuscita: </h1>" . mysql_error());
mysql_select_db('NOME_DB);
$query = "SELECT pwd FROM tab_utenti WHERE Nome = '$User'";
$result = mysql_query($query);
$name_row = mysql_fetch_row($result)
if (!($name_row = mysql_fetch_row($result)) or ($Pwd<>$name_row[0]))
{
PAGINA DI LOGIN
}
Else
{
PAGINA RICHIESTA
}
?>
Il tutto funziona perfettamente. Vorrei solo sapere se a livello di sicurezza il codice va bene perché:
- Nel codice c’è l’utente e la password per l’accesso al database, ma essendo lato server questo non dovrebbe essere visibile ai malintenzionati. Corretto?
- Il fatto che nella pagina di login passo l’user con il metodo post non dovrebbe rappresentare un problema. Giusto?
- Il fatto che confronti la password inserita e memorizzata con SESSION, ogni pagina, con quella estratta dal database è corretto e sicuro?
- Ci sono altri problemi per la sicurezza?
Mi scuso per essermi dilungato e ringrazio chiunque vorrà rispondermi.
Buona giornata

Rispondi quotando