Ciao, vorrei realizzare un sistema di autenticazione per un'area riservata, che sia sicura al 100% da hacker e sql injection. Un sistema simile può considerarsi sicuro?:
<?
/* Check User Script */
function Formatta($campo) {
$campo=htmlentities($campo);
$campo=mysql_real_escape_string($campo);
$campo=str_replace(";"," ",$campo);
$campo=str_replace("--"," ",$campo);
$campo=str_replace("+","piu",$campo);
$campo=str_replace("'"," ",$campo);
$campo=str_replace("("," ",$campo);
$campo=str_replace(")"," ",$campo);
$campo=str_replace("="," ",$campo);
$campo=str_replace("<"," ",$campo);
$campo=str_replace(">"," ",$campo);
$campo=str_replace("@"," ",$campo);
$campo=str_replace("select"," ",$campo);
$campo=str_replace("insert"," ",$campo);
$campo=str_replace("create"," ",$campo);
$campo=str_replace("delete"," ",$campo);
$campo=str_replace("drop"," ",$campo);
$campo=str_replace("alter"," ",$campo);
$campo=str_replace("from"," ",$campo);
$campo=str_replace("where"," ",$campo);
// $campo=str_replace("or"," ",$campo);
$campo=str_replace("and"," ",$campo);
$campo=str_replace("like"," ",$campo);
$campo=str_replace("exec"," ",$campo);
$campo=str_replace("script"," ",$campo);
$campo=str_replace("<script>"," ",$campo);
$campo=str_replace("</script>"," ",$campo);
$campo=str_replace("shell"," ",$campo);
$campo=str_replace("sp_"," ",$campo);
$campo=str_replace("xp_"," ",$campo);
$campo=str_replace("sql"," ",$campo);
$campo=str_replace("rowset"," ",$campo);
$campo=str_replace("oper"," ",$campo);
$campo=str_replace("begin"," ",$campo);
$campo=str_replace("end"," ",$campo);
$campo=str_replace("declare"," ",$campo);
$campo=str_replace("update"," ",$campo);
$campo=str_replace("*","per",$campo);
return $campo;
}
include 'db.php';
// Convert to simple variables
$username = $_POST['username'];
$password = $_POST['password'];
$username = Formatta($username);
$password = Formatta($password);
if((!$username) || (!$password)){
echo "Inserire tutte le informazioni!
";
include 'index.htm';
exit();
}
// Convert password to md5 hash
$password = md5($password);
$query_mia = "SELECT * FROM utenti WHERE login='$username' AND password='$password' AND activated='1'";
// check if the user info validates the db
$sql = mysql_query($query_mia);
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach( $row AS $key => $val ){
$$key = stripslashes( $val );
}
$livello = $row['user_level'];
// Register some session variables!
session_register('first_name');
$_SESSION['first_name'] = $first_name;
session_register('last_name');
$_SESSION['last_name'] = $last_name;
session_register('email_address');
$_SESSION['email_address'] = $email_address;
session_register('username');
$_SESSION['username'] = $username;
session_register('livello');
$_SESSION['livello'] = $livello;
?>
<script language="javascript">
<!--
location.replace("amministrazione.php");
-->
</script>
<?
}
} else {
echo "<div align=center><span class=titolo>Username o password non valide!
Riprova!
</span>
<a class=link href=index.htm>TORNA INDIETRO</a></div>
";
}
?>
Grazie a tutti per i consigli!