Proteggere le pagine del tuo sito web in php

Faq di php

Proteggere le pagine del tuo sito web in php

Messaggioda alesslud » gio mar 20, 2008 12:43 pm

Pagina di login: questa applicazione è solo un esempio e non sono state affrontate tutte le questioni sulla sicurezza e alcuni concetti non sono stati presi in considerazione. Tuttavia è un buon punto di partenza su cui basare gli sviluppi della vostra applicazione ma si consiglia di non delegare la sicurezza al JavaScript presente nell'esempio


Si consiglia di modificare l'inizio di una dichiarazione di blocco di codice php da <? a <?php soprattutto se si usa la versione 5


login.php

<html>
<head>
<title></title>
</head>
<body>
<form action="index.php" method="post">
<input type="text" name="user">
<input type="password" name="password">
<input type="submit" value="Autenticati">
</form>
</body>
</html>
Ultima modifica di alesslud il mar apr 15, 2008 7:20 am, modificato 3 volte in totale.
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

index.php

Messaggioda alesslud » gio mar 20, 2008 12:44 pm

<?php
include ("aut.php");
$user = $HTTP_POST_VARS["user"];
$password = $HTTP_POST_VARS["password"];
autenticazione($user, $password);
?>
<HTML>
<BODY>
<HR>
Qui va il body della pagina
<hr />
<a href="test.php">Testa l'autenticazione</a>
</BODY>
</HTML>
Ultima modifica di alesslud il gio apr 10, 2008 9:50 am, modificato 1 volta in totale.
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

config.inc.php

Messaggioda alesslud » gio mar 20, 2008 12:45 pm

<?php
// parametri del database
$db_host = "yourdbhost";
$db_user = "youruser";
$db_password = "yourpasswrod";
$db_name = "dbname";
$db=mysql_connect($db_host,$db_user,$db_password);
if (!$db) {
echo "Impossibile collegarsi al server Mysql";
exit;
}
$db_name=mysql_select_db("dbname",$db);
if (!$db_name) {
echo "Impossibile selezionare il database";
exit;

}
?>
Ultima modifica di alesslud il gio apr 10, 2008 9:50 am, modificato 1 volta in totale.
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

aut.php

Messaggioda alesslud » gio mar 20, 2008 12:47 pm

Questa è la funzione di autenticazione: è necessaria includerla in tutte le pagine del tuo sito web

<?php
session_start();
function autenticazione($user, $password) {
include ("config.inc.php");

//eseguo la query per l'autenticazione
$query="SELECT id_aut_utente, username, password from aut_utente WHERE username='$user' and password='$password'";

//variabile che mi serve per capire se sono autenticato o no
$autenticato = "autenticato";


# controllo dell'esitenza di record;
$risultati_mysql=mysql_query($query,$db);
$num_righe=@mysql_num_rows($risultati_mysql);

//se non sono autenticato
if(!isset($_SESSION['autenticato'])){
if ($num_righe != 0)
{
while ($riga=mysql_fetch_array($risultati_mysql)) {

$user=$riga["username"];
$password=$riga["password"];
$id=$riga["id_aut_utente"];
if(!isset($_SESSION['id']))
{
$_SESSION['id'] = $id;
}
} //end while
$_SESSION['autenticato'] = "autenticato";
} else
{
include ("redirect.php");
}
}

//torna l'utente autenticato
return $user;
}// end function
?>
Ultima modifica di alesslud il gio apr 10, 2008 9:50 am, modificato 1 volta in totale.
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

logout.php

Messaggioda alesslud » gio mar 20, 2008 12:47 pm

<?php
session_start();
$_SESSION[autenticato] = "";
session_unset();
session_destroy();
include "redirect.php";
?>
Ultima modifica di alesslud il gio apr 10, 2008 9:51 am, modificato 1 volta in totale.
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

redirect.php

Messaggioda alesslud » gio mar 20, 2008 12:47 pm

<script language="JavaScript" >
location.reload('./login.php');
</script>

questa parte deve essere sostituita con la seguente in quanto JavaScript non è sicuro ed è sempre possibile disabilitarlo!!!!!

<?php
header("location: http://www.aquilasiti.com/upload/login.php");
?>
Ultima modifica di alesslud il mar apr 15, 2008 3:41 pm, modificato 1 volta in totale.
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

test.php

Messaggioda alesslud » gio mar 20, 2008 12:48 pm

<?php
include ("aut.php");
autenticazione($user, $password);
?>
<HTML>
<BODY>
<HR>
Se vedi questa pagina l'autenticazione è andata a buon fine
</BODY>
</HTML>

Scrivendo direttamente l'url di questa pagina nel broser dovrebbe reindirizzarti alla pagina di login a meno che tu prima non abbia gia' fatto l'autenticazione.
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am


Torna a Php

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron