|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Brianza
Messaggi: 2687
|
PHP - Proteggere pagine con password
sto provando ad usare questo "script" per proteggere alcune pagine web:
Codice:
<?
if ( ( !isset( $PHP_AUTH_USER )) || (!isset($PHP_AUTH_PW))
|| ( $PHP_AUTH_USER != 'nomeutente' ) || ( $PHP_AUTH_PW != 'password' ) ) {
header( 'WWW-Authenticate: Basic realm="Nome sito"' );
header( 'HTTP/1.0 401 Unauthorized' );
echo 'Nome utente o password errati';
exit;
}
?>
"Inserire nome utente e password per www.miosito.com su http://www.miosito.com" in questo caso i parametri inseriti nello script non hanno effetto... qualcuno può spiegarmi dove sbaglio per favore? grazie!
__________________
"Le prime giornate di un europeo in America possono essere paragonate alla nascita di un uomo." Franz Kafka
"Don't cry because it's over. Smile because it happened." Theodor Geisel |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Brianza
Messaggi: 2687
|
Quote:
a scanso di equivoci, scrivo esattamente qutto quello che ho fatto: file autenticazione.inc.php: Codice:
<?php
$user = "username";
$pass = "password";
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header("WWW-Authenticate: Basic realm=\"Nome Sito\"");
header("HTTP/1.0 401 Unauthorized");
exit;
}
else if (($_SERVER['PHP_AUTH_USER'] == $user) && ($_SERVER['PHP_AUTH_PW'] == $pass)) {
echo "Login eseguito con successo...";
}
else { echo "Errore di login!!"; }
?>
Codice:
<?php include('autenticazione.inc.php'); ?> //in cima alla pagina
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>titolo</title>
</head>
<body>
<p>testo privato</p>
</body>
</html>
__________________
"Le prime giornate di un europeo in America possono essere paragonate alla nascita di un uomo." Franz Kafka
"Don't cry because it's over. Smile because it happened." Theodor Geisel |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Io ho appena provato questo codice e funziona.
Codice:
<?php
$username = "prova";
$password_hash = "e10adc3949ba59abbe56e057f20f883e";
if (!isset ($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] != $username ||
md5 ($_SERVER['PHP_AUTH_PW']) != $password_hash)
{
header ('WWW-Authenticate: Basic realm="Esempio di autenticazione"');
header ('HTTP/1.0 401 Unauthorized');
echo 'Inserire username/password';
exit;
}
?>
<html>
<body>
<p>Sei loggato come utente <strong><?php echo $_SERVER['PHP_AUTH_USER']; ?></strong>.</p>
</body>
</html>
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Brianza
Messaggi: 2687
|
Quote:
che sia un problema del server di aruba?? vi linko direttamente la pagina col codice di andbin: http://www.ameroni.com/blog/admin.php nome utente: prova password: noob grazie per l'aiuto
__________________
"Le prime giornate di un europeo in America possono essere paragonate alla nascita di un uomo." Franz Kafka
"Don't cry because it's over. Smile because it happened." Theodor Geisel |
|
|
|
|
|
|
#5 | ||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
Quello che so è che l'autenticazione HTTP può anche essere gestita direttamente dal web server. Quindi, nel tuo caso, prima viene gestita l'autenticazione dal PHP e poi la seconda dal web server. Il tuo sito vedo che gira su server IIS, che non conosco e quindi non saprei dirti di più. Con Apache si possono usare delle direttive da mettere ad esempio in un file .htaccess per gestire questa autenticazione. Il tuo sito ha un pannello di controllo?? Prova a vedere se c'è qualcosa relativo a questa autenticazione. Al massimo chiedi a quelli di aruba ...
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Brianza
Messaggi: 2687
|
Quote:
vedrò di contattare quelli di aruba, visto che il pannello di controllo che mi forniscono fa davvero pietà. tornando al tuo codice... premettendo che fino a 5 minuti fa non sapevo neanche cosa fosse un hash, vorrei capire come fare a decifrare "e10adc3949ba59abbe56e057f20f883e"... il procedimento inverso si fa con md5... su internet non ho trovato alcun modo per passare da hash a text... il fatto di sfruttare l'esadecimale e solo per questioni di sicurezza vero? ![]() EDIT: che niubbo che sono... wikipedia: "Non esiste una corrispondenza biunivoca tra l'hash e il testo." però suppongo che una parola dia sempre lo stesso hash se buttata nella funzione md5... quindi solo tu sai quanto vale il tuo codice esadecimale? vero?nel caso sciagurato che non riuscissi a risolvere il problema di autenticazione, in attesa di cambiare hoster, come mi consigliate di proteggere le mie pagine? posso fare una pagina di login che ti lascia due cookie (uno per lo user e uno per la password) e fare in modo che ogni pagina da proteggere controlli che i cookie siano in regola? grazie
__________________
"Le prime giornate di un europeo in America possono essere paragonate alla nascita di un uomo." Franz Kafka
"Don't cry because it's over. Smile because it happened." Theodor Geisel Ultima modifica di negator136 : 26-07-2006 alle 14:26. |
|
|
|
|
|
|
#7 | |||||
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
Le funzioni hash comunque funzionano così: ad un certo input corrisponde sempre un hash ben preciso. Un certo valore hash può essere generato da N input diversi. Quote:
Quote:
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|||||
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Brianza
Messaggi: 2687
|
Quote:
grazie per le risposte ps: stavo già usando il tuo tool prima che me lo dicessi
__________________
"Le prime giornate di un europeo in America possono essere paragonate alla nascita di un uomo." Franz Kafka
"Don't cry because it's over. Smile because it happened." Theodor Geisel |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:34.












però suppongo che una parola dia sempre lo stesso hash se buttata nella funzione md5... quindi solo tu sai quanto vale il tuo codice esadecimale? vero?








