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: 20 GB prostoru, PHP, MySQL, e-maily, subdomény za 1200 Kč (zdarma 2 GB navíc každý rok). Více WebhostingC4.cz.
Potřebujete poradit?


Vyhledávání


Poradna

Pokud si nevíte rady, chcete kontakt na spolehlivého tvůrce webu, či vás zajímá cizí názor, ozvěte se.

Reklama