Autoryzacja HTTP

Jeżeli z jakiś powodów potrzebujesz w szybki sposób zabezpieczyć jakąś stronę, to poniższy skrypt Ci w tym pomoże. Umieść go jako pierwszy kod na stronie.

<?php

$login = "admin"; // tu wpisz swój login
$password = "pass"; // a tu swoje hasło

if(!isset($_SERVER['PHP_AUTH_USER']) or strcmp($_SERVER['PHP_AUTH_USER'],$login) or strcmp($_SERVER['PHP_AUTH_PW'],$password)) {
    header("WWW-Authenticate: Basic realm=strefa chroniona");
    header("HTTP/1.0 401 Unauthorized");
    die("Brak uprawnień do przeglądania strony");
}
else {
    echo "Witaj w strefie chronionej!";
}

?>

można też tak:

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="Konieczność autoryzacji"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
else if(isset($_SERVER['PHP_AUTH_USER'])) {
$plik = "hasla.txt";
$fp = fopen($plik,"r");
$WszystkieHasla = fread($fp, filesize($plik));
fclose($fp);
$LoginHaslo = explode("|", $WszystkieHasla);
$i = 0;
while($i >= sizeof($LoginHaslo)) {
$dane = explode(":", $LoginHaslo[$i]);
$uzytkownik=strval($_SERVER['PHP_AUTH_USER']);
$haslo=strval($_SERVER['PHP_AUTH_PW']);
if (($dane[0] == $uzytkownik) && ($dane[1] == $haslo)) {
$auth = true;
break;
}
else {
$auth = false;
}
$i++;
}
if ($auth == true) {
header("Location: Web.html");
exit;
}
else {
header('WWW-Authenticate: Basic realm="Konieczność autoryzacji"');
header('HTTP/1.0 401 Unauthorized');
echo 'Brak dostępu';
exit;
}
}
?>

lub:

<?php
if (($user) && ($pass)) {
$url = $DOCUMENT_ROOT . dirname($PHP_SELF) . "/.htpasswd";
$htaccess_txt = "AuthType Basic" . "n";
$htaccess_txt .= "AuthName "Podaj hasło"" . "n";
$htaccess_txt .= "AuthUserFile $url" . "n";
$htaccess_txt .= "require valid-user" . "n";
$htpasswd_txt .= "$user:".crypt($pass,CRYPT_STD_DES)."n";
$htaccess= fopen(".htaccess", "w");
$htpasswd= fopen(".htpasswd", "w");
fputs($htaccess, $htaccess_txt);
fputs($htpasswd, $htpasswd_txt);
fclose($htaccess);
fclose($htpasswd);
die ("Nowe pliki: .htaccess i .htpasswd zostały pomyślnie utworzone !!!<br><br> Nie zapomnij skasować htpasswd.php oraz przywrócić domyślny chmod katalogu na 775 ");
}

?>
<html>
<head>
<title>.htaccess + .htpasswd</title>
</head>
<body>
<center>
<form method="POST" action="<? echo $PHP_SELF; ?>">
Pamiętaj !!! katalog w którym zakładasz hasło musi mieć chmod ustawione na 777 !!!
<p>Użytkownik:
<input type="TEXT" name="user"></p>
<p>Hasło:
<input type="TEXT" name="pass"></p>
<p>
<input type="submit" value="Utwórz pliki zabezpieczjące katalog"></p>
</form>
</center>
</body>
</html>

utworzy pliki .htaccess i .htpasswd Katalog, który zabezpieczasz musi mieć chmod = 777, potem oczywiście trzeba zmienić, no i wykasować htpasswd.php

inna wersja:

<?php
if (!isset($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="Konieczność autoryzacji"');
header('HTTP/1.0 401 Unauthorized');
exit;
}

else if(isset($_SERVER['PHP_AUTH_USER']))
{
$plik = "hasla.txt";
$fp = fopen($plik,"r");
$WszystkieHasla = fread($fp, filesize($plik));
fclose($fp);
$LoginHaslo = explode("|", $WszystkieHasla);
$k=sizeof($LoginHaslo)-1;
for ($i = 0;$i<=$k;$i++)
{
$dane = explode(":", $LoginHaslo[$i]);
$uzytkownik=strval($_SERVER['PHP_AUTH_USER']);
$haslo=strval($_SERVER['PHP_AUTH_PW']);
if (($dane[0] == $uzytkownik) && ($dane[1] == $haslo))
{
$spr=TRUE;
break;
exit;
}
else
{
$spr=FALSE;
}
}
if ($spr == TRUE)
{
header('Location: http://www.o2.pl');
exit;
}
else
{
header('WWW-Authenticate: Basic realm="Konieczność autoryzacji"');
header('HTTP/1.0 401 Unauthorized');
echo 'Brak dostępu';
exit;
}

}

 

Projekt © 2009 - INFOPROG 70638 odwiedzin