JavaScript a PHP heslo

Na této stránce naleznete různé jednoduché metody zaheslování stránek.

Struktura zaheslovaných stránek

Mnohdy se může stát, že existují dvě stránky, například stránka A s formulářem, který vede na stránku B. Občas stačí pouze zadat adresu stránky B a heslo vůbec není třeba řešit. Stačí si jen prohlédnout zdrojový kód stránky u atributu action. Na to je třeba dát dobrý pozor.

Heslo pomocí JavaScriptu

Heslo pomocí JavaScriptu je věc málo bezpečná. K obejití takového kódu stačí zobrazit zdrojový kód:

function overheslo(){
if(document.form.heslo.value=="tajneheslo")
location.href="tajnastranka.html";
else window.alert("špatnéheslo")}

Zkušený návštěvník se podívá do zdroje a je mu vše jasné. Jako obstojnější kód se může zdát tohle:

heslo=prompt('Zadejte heslo'); 
spravneheslo="heslo"; 
if (heslo==spravneheslo) 
{
window.location="zaheslovanastranka.htm"; 
} 
else 
{ 
window.location="spatneheslo.htm"; 
}  

Tento skript nikdy návštěvníkovi nedovolí zobrazit zdrojový kód (nejdříve je zobrazeno dialogové okno, potom jste posláni jinam). Ale prolomení takového hesla není problém, stačí si před příchodem na takovou stránku vypnout JavaScript.

Heslo v PHP

Zdrojový kód pro zaheslování pomocí PHP:

// formulář
<form action="heslo.php3" method="get">
<input type="password" name="heslo" />
<input type="submit" value="odeslat" />
</form>
// heslo.php3
// tato stránka vás po zadání špatného hesla vrátí
zpět k formuláři
<? if($heslo == "tajneheslo"): ?>
..tajny text
<? else: ?>
// zadané heslo je chybné history.back()
<? endif ?>

Ze zdrojového kódu nyní návštěvník heslo nepozná a pokud stránku zobrazí bez zadání hesla, automaticky se zobrazí text "..zadané heslo je chybné", není definovaná proměnná $heslo

Jak zabránit obejití struktury

Většinou je třeba zaheslovat několik stránek. Buď na každou umístěte formulář pro heslo, nebo je přenášejte pomocí proměnné Session (od PHP4), ta se jednou deklaruje a při změnách URL se nemění. Deklarace:

$_SESSION['heslo'] = 'qwert';
session_start();
if ($_SESSION['heslo'] == 'qwert')
echo "Jo je to dobrý....." ;
else "Chybné heslo!!!";

Heslo v PHP pomocí dialogového okna

IF ( !($PHP_AUTH_USER == "Simon" and $PHP_AUTH_PW == "qwert") ) {
Header("WWW-Authenticate: Basic realm=\"SITE\"");
Header("WWW-Authenticate: Basic realm=\"SITE\"");
Header("HTTP/1.0 401 unauthorized");
echo ("Pristup odepřen!");
exit;
}
else:
echo "Vítejte na mých stránkách..."

Tato konstrukce musí předcházet všechno v dokumentu, jinak nefunguje.

Zajímavé: Jak ochránit své stránky
+Zajímavé: Jak skrýt reklamu




Doporučuji
Pro své weby používám *Webhosting C4: 4 GB prostoru, PHP, MySQL, e-maily, subdomény za 1200 Kč (zdarma 500 MB navíc každý rok). Více WebhostingC4.cz.

Vyhledávání


Reklama
Pojištění vozidel
Porovnejte si sazby zákonného pojištění vozidel online.
Markýzy
Nabízíme markýzy - špičkový výběr a kvalita. Naše markýzy vydrží.

Reklama:

Kvalitní a spolehlivý web hosting pro každého | Jak vypadá efektivní tvorba webových stránek? Nechte si vytvořit web společností AITOM!