Zaheslovaný přístup na stránku

28. března 2000

Ve článku „Tipy a triky pomocí JavaScriptu“ jsem zmínil jednoduchý JavaScript, který po zadání hesla přesměroval uživatele na HTML soubor mající stejné jmého jako bylo vložené heslo. Ozvalo se mi několik čtenářů, kteří by ovšem potřebovali provést autorizaci podle uživatelského jména a hesla a podle toho náštěvníka přesměrovat.

Hned na začátek článku chci ovšem upozornit, že tento skript rozhodně není vhodný pro utajování citlivých informací a rovněž není vhodný pro přístup více uživatelů s odlišným jménem a heslem. Uživatelská jména a hesla a adresa stránky, kam mají být uživatelé po autorizaci přesměrováni jsou totiž uvedena přímo v JavaScriptu a každý trochu zkušený uživatel Internetu si přístupová hesla může vyhledat sám ve zdrojovém kódu stránky.

<SCRIPT LANGUAGE=“JavaScript“>
<!–
function Login(){
var done=0;
var username=document.login.username.value;
var password=document.login.password.value;
if (username==“login1″ && password==“alfa“) { window.location=“http://www.interval.cz“; done=1; }
if (username==“login2″ && password==“beta“) { window.location=“http://diskuse.interval.cz“; done=1; }
if (done==0) { alert(„Bylo zadáno špatné jméno nebo heslo!“); }
}
// –>
</SCRIPT>
<form name=login>
<TABLE WIDTH=“100″ BORDER=“0″ CELLSPACING=“2″ CELLPADDING=“0″>
<tr><td colspan=2><center><FONT FACE=“HELVETICA CE, ARIAL CE, ARIAL, HELVETICA“ SIZE=“3″><b>Přihlášení uživatele:</b></font></center></td></tr>
<tr><td>Jméno:</td><td><INPUT TYPE=“Text“ NAME=“username“></td></tr>
<tr><td>Heslo:</td><td><INPUT TYPE=“Text“ NAME=“password“></td></tr>
<tr><td colspan=2 align=center><input type=button value=“Přihlásit se“ onClick=“Login()“></td></tr>
</table>
</form>

Přihlášení uživatele:

Jméno:
Heslo:

Výše uvedený příklad si vyzkoušejte tak, že jako uživatelské jméno vložte „login1“ a heslo „alfa“. Po stisknutí tlačítka „Přihlásit se“ budete přesměrování na úvodní stránku serveru Interval.cz. Pokud vložíte uživatelské jméno „Login2“ a heslo „beta“, budete přesměrováni na úvodní stránku Diskusního fóra.

Všechna přihlašovací jména, hesla a adresa stránky, kam má být uživatel přesměrován po úspěšném přihlášení (done=1), jsou definována v podmínkách if. Zde si můžete nadefinovat své vlastní uživatelská jména, hesla apod. Pokud heslo neodpovídá ani jednomu zadanému, pak se uživateli objeví varovná hláška (alert) s nadefinovaným textem, že bylo zadáno neplatné uživatelské jméno nebo heslo.

Přihlašovací jméno a heslo musí být zadáno přesně tak, jak je uvedeno ve zdrojovém kódu JavaScriptu – jsou totiž rozlišována velká a malá písmena. Pokud chcete, aby na velikosti písem u uživatelského jména nezáleželo, doplňte do skriptu tento řádek, který zajistí, že nebudou rozlišována velká a malá písmena.

username=username.toLowerCase();

Pokud potřebujete zrušit citlivost na velká a malá písmena i u zadávaného hesla, doplňte do skriptu tento řádek:

password=password.toLowerCase();

Doporučuji ovšem tyto dvě možnosti nekombinovat, jinak bude uživatel zmaten – dejte citlivost na velikost písmen všude nebo jednoduše nikde. Výsledný JavaScript (už bez samotného HTML formuláře, který se nemění) bude vypadat takto:

<SCRIPT LANGUAGE=“JavaScript“>
<!–
function Login(){
var done=0;
var username=document.login.username.value;
var password=document.login.password.value;
username=username.toLowerCase();
password=password.toLowerCase();
if (username==“login1″ && password==“alfa“) { window.location=“http://www.interval.cz“; done=1; }
if (username==“login2″ && password==“beta“) { window.location=“http://diskuse.interval.cz“; done=1; }
if (done==0) { alert(„Bylo zadáno špatné jméno nebo heslo!“); }
}
// –>
</SCRIPT>

Pokud se vám tento typ článku ohledně různých tipů v JavaScriptu líbí, napište mi na e-mail nebo do diskusního fóra. Rád přivítám vaše nápady ohledně obsahu tohoto typu článků.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *