Honlapok jelszavas védelme

A honlapkészítés során szerintem már sok emberben felmerült az igény, hogy lapja egyes oldalait, vagy akár az egészet jelszavas védelemmel lássa el. A védelem lehet akár csak 1 adott jelszó is, de lehet nevet/jelszót igénylő módszer is.

Megoldásra az egyszerűbbektől a bonyolultabbakig sok módszer található a neten, vegyük sorjában mik a lehetőségeink:

Mint látható, többféle módszer is létezik, most a teljesség igénye nélkül nézzünk 1-2 példát, kisebb leírást mindegyikhez.

 

==JAVASCRIPT==

Ez a megoldás véleményem szerint elég gyerekes, nagy titkokat ne bízzunk rá. A legtöbb megoldás esetében gyakorlatilag már a forrás megtekintése után tudjuk a belépéshez szükséges adatokat, ezért inkább csak "látszatvédelemre" jó.

A módszerhez általánosságban elmondható, hogy alkalmazása elég egyszerű, a javascript kódot elég bemásolni a HTML fájl meghatározott területére – ez általában a <head> vagy a <body>. A scriptek elején általában találunk egy kis rövid "install" részt, vagy pedig a weboldalon, ahonnan letöltöttük – szoktak magyarázatot melllékelni hozzá.

Hogyan tehetünk szert ilyen scriptekre? Elég egyszerűen, sok nagy internetes gyűjtemény van a neten ebben a témában, a példa kedvéért pár URL:

Nézzünk párat:

Javascript – Cookie

A kód úgy müködik, hogy van egy login oldal, ahol a felhasználóknak be kell írni a password1+password2+password3-t, illetve vannak azok az oldalak, melyeket védünk.. A belépés abban az esetben lesz sikeres, ha az első és második jelszó összevonva megegyezik a harmadikkal, pl:

password1(verba)+password2(tim) = password3(verbatim)
verba+tim = verbatim

A módszer használatához szükséges, hogy az első 2 kódot bemásoljuk a "login" oldalba, a 3. kódot pedig abba a dokumentumba kell illeszteni, melyet védeni akarunk.

1.) illesszük be a kódot a "login" oldal <HEAD> részébe:

Login page HEAD

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

<!– This script and many more are available free online at –>
<!– The JavaScript Source!! http://javascript.internet.com –>

<!– Begin
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function DeleteCookie () {
var exp = new Date();
exp.setTime (exp.getTime() – 1000000000); // This cookie is history
var cval = GetCookie (‘FreeStuffL’);
document.cookie =’FreeStuffL’ + "=" + cval + "; expires=" + exp.toGMTString();
}
function cookieCreater () {
if(GetCookie(‘FreeStuffL’) == null) {
var FreeStuffL_Name = prompt ("What name do you want to go by?", "" );
if (FreeStuffL_Name != null && FreeStuffL_Name != "") {
var expdate = new Date ();
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 365));
SetCookie(‘FreeStuffL’, FreeStuffL_Name, expdate);
alert ("You now are logged in! From now on, when you come to this page, you will be forwarded to the Password Protected Members-Only Area. Please do not tell anyone your entry code. At this new page, you will be shown a list of functions. Have fun!");
location.href = "cookie-in.html"
}
}
else {
DeleteCookie ();
cookieCreater ()
}
}
if(GetCookie(‘FreeStuffL’) != null) {
location.href="cookie-in.html"
}
function check() {
var tester = document.login.numOne.value + document.login.numTwo.value;
if (tester == "") {
alert ("I’m sorry, that code is not correct.");
}
else
{
if (tester == document.login.numThree.value) {
alert ("That is correct!");
cookieCreater ();
}
else {
alert ("Nope!");
}
}
}
// End –>
</SCRIPT>

A következő rész pedig a <BODY> tartalma lesz:

Login page BODY

<BODY>

<center>
<form name=’login’>
Enter your login code (FORMAT: login # one, login # two, login # three):
<p><input TYPE=’text’ NAME=’numOne’ SIZE=15><br>
<input TYPE=’text’ NAME=’numTwo’ SIZE=15 ><br>
<input TYPE=’text’ NAME=’numThree’ SIZE=15 ><br>
<input TYPE=’button’ VALUE=’Login’ ONCLICK=’check()’>
</form>
</center>
<font size=1 color=white>
This page requires Javascript to run! Please get Netscape 2.0 or greater!
</font>
<form name="login2">
<input type=hidden name="go" value="cookie-in.html">
</form>

<p><center>
<font face="arial, helvetica" size="-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>

Az alábbi kóddal pedig magát a lapot lehet levédeni:

Védett lap BODY

<!– ONE STEP TO INSTALL COOKIE PASSWORD PROTECTION (PROTECTED):

1. Put the designated coding into the BODY of your HTML document –>

<!– STEP ONE: Copy this code into the BODY of your HTML document –>

<BODY>

<SCRIPT>
<!– Begin
if(GetCookie(‘FreeStuffL’) == null) {
alert ("I’m sorry. You can not view this area! You will be bounced to the login page…")
location.href="pass.html"
}
else
{
document.write("<center><font size=5 color=red>Welcome "+GetCookie(‘FreeStuffL’)+"! </font><font size=4 color=red>Thank you for entering the Javascript Source Password Protected Area. You have access to all files and scripts in this area.</font>");
document.write("<hr><br>The following options will help you keep track of the Members-Only Section..<br>");
document.write("<p><a href=index.html>Go back to The Javascript Source Home Page</a>");
document.write("<form><input type=button onClick=’nameWhat()’ value=’What is my login name?’></form>");
document.write("<form><input type=button value=’Erase your account or change your login name!’ onClick=’DeleteCookie ()’></form>");
document.write("<a href=mailto:antispammer@earthling.net>Mail antispammer@earthling.net</a>");
document.write("<hr><font size=5>T</font>he following items can not be accessed by users that do not have security clearence.<br>");
document.write("<form><input type=button value=’Info about how this login page works.’ onClick=’pageInfo ()’></form><br>");
document.write("<p><font size=5 color=green>This page will, of course, be updated very often! And once again, thanks for registering!</center>");
}
document.write ("<font size=1 color=white>");
// End –>
</SCRIPT>

<p><center>
<font face="arial, helvetica" size="-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>

<!– Script Size: 1.69 KB –>

Tulajdonképpen ez nem az a tipikus jelszavas védelem, mert bármilyen jelszópárost meg lehet adni, de kezdésnek talán érdekes példa. Arra mindenképp jó, hogy lapunk bizonyos részeit mondjuk csak a főoldal felől lehessen meglátogatni, ilyenkor a főoldalba kell te nni az első 2 scriptet. Arra az esetre is jó, ha nem szeretnénk hogy lapunkat más belinkelje a saját honlapjába, és mint sajátját tüntesse fel. A gyakorlatlanabb felhasználók ellen akár mint védelem is elmegy, hisz a látogató csak azt látja, hogy 3 jelszót kéne beírnia, de fogalma sincs róla mik lehetnek azok. Hiába nézegeti a forrást, ott nem fog találni (mivel nincs is). :)

Demó: http://javascript.internet.com/passwords/cookie.html

Javascript – Gatekeeper

Ez a maga nemében aránylag biztonságosnak mondható, egy szintig. Ugyanis tulajdonképpen nincs előre definiált jelszó, nem tárolunk ilyesmit sehol, hanem maga a védendő fájl neve a jelszó (a kiterjesztés nélkül). Tehát hogy érthetőbb legyen: van egy terület, ahova felhasználónak be kell írnia egy jelszót, hogy tovább mehessen. Ez a jelszó a fájl neve lesz, ahova tovább akar menni, csak megfelelően hosszú és bonyolult nevet kell neki találni. A felhasználó beírja mondjuk a "er9sdf4949doexser" jelszót, majd a script ezt kiegészíti a "html"-el, és ezekután a felhasználó belép a "er9sdf4949doexser.html" lapba. Ha nem tudja a lap nevét (ami a jelszó), akkor nem fog tudni belépni. Ebben az esetben is hiába nézegeti a forrást, a keresése eredménytelen lesz.

A "telepítéséhez" 3 fájlra lesz szükség: egy lap ahol rákattintanak a belépésre (ez lehet akár a kezdőlapod is), egy "gatekeeper.html" fájlra, illetve egy olyan lapra amit védeni akarsz (ennek lesz a hosszú, bonyolult neve)

Első lépésként ezt a kódot tedd a kezdőlapod <HEAD> részébe:

Login oldal HEAD rész

< <HEAD>

<SCRIPT LANGUAGE="javascript">

<!– This script and many more are available free online at –>
<!– The JavaScript Source!! http://javascript.internet.com –>

<!– Begin
var nifty_little_window = null;
function gateKeeper() {
nifty_little_window = window.open(‘gatekeep.html’, ‘theKeeper’, ‘width=350,height=200,resizable=1’);
}
// End –>
</SCRIPT>

Második lépésként tedd ezt a kódot a kezdőlapod <BODY> részébe:

Login oldal BODY rész

<BODY>

<CENTER>
<A HREF="" onMouseOver="gateKeeper()">Access the protected area.</A><BR>
<P>
Or, click Enter…<BR>
<FORM NAME="gatekeeperbutton" ACTION="" onSubmit="gateKeeper()">
<input type="submit" value="Enter!">
</FORM>

</CENTER>

<p><center>
<font face="arial, helvetica" size="-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p><

Harmadik lépésként pedig másold ezt a kódot egy üres lap forrásába, majd mentsd el "gatekeeper.html"-ként:

Védett oldal tartalma

<!– FOUR STEPS TO INSTALL PASSWORD PROTECTION (GATEKEEP PAGE):

1. Put the designated coding into the HEAD of document
2. Save the gatekeep image into your web page directory
3. Add the image to the BACKGROUND to BODY of document
4. Copy this code into the BODY of document –>

<!– STEP ONE: Copy this code into the HEAD of your document –>

<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!– Begin

// Get your very own Gate Keeper from Professional Web Design
// http://junior.apk.net/~jbarta/weblinks/gate_keeper/

function goForit() {
var location;
var password;
password=this.document.testform.inputbox.value
location=password + ".html"
fetch(location)
theKeeper=window.close()
}
function fetch(location) {
var root;
if (opener.closed) {
root=window.open(”,’theKeepersGopher’,’toolbar=yes,location=yes,status=yes,
menubar=yes,scrollbars=yes,resizable=yes,copyhistory=no’);
root.location.href = location;
} else {
opener.location.href = location;
}
}
// End –>
</SCRIPT>

<!– STEP TWO: Save the gatekeeper image in your web page directory. –>
<!– http://javascript.internet.com/img/gatekeeper/keeper.gif –>
<!– click, hold, and ‘Save Image As’ Place image in directory. –>

<!– STEP THREE: Add BACKGROUND tag to page document –>

<BODY onLoad="top.window.focus()" BACKGROUND="http://your.domain.com/keeper.gif">

<!– STEP FOUR: Copy this code into the BODY of document –>

<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
<TR>
<TD ROWSPAN=2 WIDTH=50%>
<TD WIDTH=50% ALIGN=CENTER VALIGN=MIDDLE>
<FONT FACE="ARIAL" SIZE=2><B>Hold on there, buddy. You’ll need a password to get in here. We’re tryin’ to keep out the riff-raff.</B></FONT><BR>
<TR>
<TD WIDTH=50% ALIGN=CENTER VALIGN=BOTTOM>
<CENTER>
<FORM NAME="testform">
<INPUT TYPE="text" NAME="inputbox" VALUE="" size=20>
<INPUT TYPE="button" NAME="button" Value="Submit Password" onClick="goForit(this.form)">
<P><FONT SIZE=1 FACE="COMIC SANS MS"><A HREF="http://yoursite.com/gatekeeper.html" TARGET="_blank"> <B>The password is gatekeep-in</B></A></FONT>
</FORM>
</CENTER>
</TABLE>

A negyedik, és egyben utolsó lépés hogy lemented ezt a képet, majd bemásolod a "gatekeeper.html" fájl mellé – http://javascript.internet.com/passwords/gatekeep.html

Demo: http://javascript.internet.com/passwords/gatekeeper.html

Javascript – Multiple login script I.

Ebben a scriptben több név/jelszó párost is beállíthatunk, mindegyikhez akár más-más URL-t beállítva, ahova a helyes név/jelszó páros beírása után kerülünk.

A script első részében találunk egy ilyen részt:

if (username=="member1" && password=="password1") { window.location="page1.html"; done=1; }
if (username=="member2" && password=="password2") { window.location="page2.html"; done=1; }
if (username=="member3" && password=="password3") { window.location="page3.html"; done=1; }

Itt tudjuk definiálni, hogy mi legyen a név, mi legyen a jelszó, és hova vigyen ha jól írtuk be. Több usert úgy tudunk felvenni, ha hogy az egyik sort copy/paste módszerrel duplikáljuk.

Első körben másoljuk ezt a scriptet a belépéses oldal <HEAD> részébe, majd módosítsuk a fenti kódrészletet:

head

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

<!– This script and many more are available free online at –>
<!– The JavaScript Source!! http://javascript.internet.com –>

<!– Begin
function Login(){
var done=0;
var username=document.login.username.value;
username=username.toLowerCase();
var password=document.login.password.value;
password=password.toLowerCase();
if (username=="member1" && password=="password1") { window.location="page1.html"; done=1; }
if (username=="member2" && password=="password2") { window.location="page2.html"; done=1; }
if (username=="member3" && password=="password3") { window.location="page3.html"; done=1; }
if (done==0) { alert("Invalid login!"); }
}
// End –>
</SCRIPT>

Második körben pedig másoljuk ezt a kódrészletet a belépéses oldal <BODY> részébe:

body

<center>
<form name=login>
<table width=225 border=1 cellpadding=3>
<tr><td colspan=2><center><font size="+2"><b>Members-Only Area!</b></font></center></td></tr>
<tr><td>Username:</td><td><input type=text name=username></td></tr>
<tr><td>Password:</td><td><input type=text name=password></td></tr>
<tr><td colspan=2 align=center><input type=button value="Login!" onClick="Login()"></td></tr>
</table>
</form>
</center><p><center>
<font face="arial, helvetica" size="-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center>

Ennyi lenne, elég egyszerű, de figyeljünk rá hogy a cikk elején említett "forrás megtekintése" elárulja a kutatgató embernek hogy mi az acc..

Javascript – Multiple login script II.

Ez a script tulajdonképpen ugyanazt csinálja mint az előbbi, csak kicsit másképp. A "telepítése" ennek is hasonló, 2 részből áll, egyik megy a <HEAD>-be, a másik a <BODY> -ba.

A script első felében keressük meg ezt a kódrészletet:

if (username=="guest" && password=="login") {
loggedin=true;
window.location="home-page.html";
}
if (username=="guest2" && password=="login2") {
loggedin=true;
window.location="home-page2.html";
}
if (loggedin==false) {
alert("Invalid login!");

Mint látható, itt is mi mondhatjuk meg a nevet, jelszót és hogy hova vigyen a script ha jól írtuk be. A megfelelő részek copy/paste módszerrel való többszörözésével több usert is felvehetünk.

Első körben ezt másoljuk be a belépéses oldal <HEAD> részébe:

head

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

<!– This script and many more are available free online at –>
<!– The JavaScript Source!! http://javascript.internet.com –>

<!– Begin
function LogIn(){
loggedin=false;
username="";
password="";
username=prompt("Username:","");
username=username.toLowerCase();
password=prompt("Password:","");
password=password.toLowerCase();
if (username=="guest" && password=="login") {
loggedin=true;
window.location="home-page.html";
}
if (username=="guest2" && password=="login2") {
loggedin=true;
window.location="home-page2.html";
}
if (loggedin==false) {
alert("Invalid login!");
}
}
// End –>
</SCRIPT>

Ezt a részt pedig tegyük a belépéses oldal <BODY> részébe:

body

<center>
<form><input type=button value="Login!" onClick="LogIn()"></form>
</center><p><center>
<font face="arial, helvetica" size="-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>

Ezekután már használhatjuk is, de figyeljünk rá, hogy a kíváncsi látogató a forrás megtekintése után bárhova be tud menni.

 

==JAVA APPLET==

Erre a típusú védelemre soha nem fordítottam nagyobb energiát, de a mivel erről is illik 1-2 mintát mutatni, hát legyen.. :)

Java tPassword V 1.01

Ezt a scriptet a www.google.com segítségével találtam, ingyenesen használható bármely honlapon. Úgy működik, hogy a egy kis ablakot dob fel a látogató számára, ahova a nevet/jelszót be kell írni.

A HTML fájlba csak ennyit kell bemásolni (a forráskódba):

<applet codebase="./c lass" code=tpassword width=1 height=1>
<PARAM name="cabbase" value="../cab/tpassword.cab">
</applet>

Ahogy látom, itt sincs vmi nagy titokkal kezelve a név/jelszó, mert egy "pass.txt" fájlban találhatók. :(

Ha működés közben akarjátok látni, akko demo itt: http://www.javaside.com/asp/mus.asp?page=/us/tpass_s0.shtml

 

==PROGRAMOK==

Lapunk védelmét erre specializált programokkal is megoldhatjuk, melyeket telepíteni kell gépünkre. Közös jellemzőjük, hogy működés szemponjából nagyjából igy néznek ki: válaszd ki a védendő fájlokat – határozd meg hogy milyen védelemmel kívánod ellátni – állítsd be a nevet és jelszavat – engedélyezd a módosításokat – töltsd fel a webszerverre a módosított lapokat.

Használatuk általában egyszerű, nem igényel semmiféle HTML szerkesztői vagy programozói tudást, csak varázslókon kell végigkattintgatni az oldalakat. Nézzünk pár ilyen programot.

HTML Password Lock

honlap: http://www.htmlpassword.com/htmlpl/index.html
licence: shareware
letöltés: http://www.htmlpassword.com/download/htmlpl.zip

A program fizetős, de egy ingyenesen letölthető verziót azért kipróbálhatunk. Aki nem elégszik meg a demo verzió lehetőségeivel, nehogy letöltse egy warez/serial/crack oldalról a törését (mint pl. az astalavista.box.sk vagy www.andr.net), inkább fizesse meg a nem túl drága árat, mert ezzel támogatja a program fejlesztőit.

Nézzük hogy működik. Ezt címszavakba szedve, képekkel illusztrálva fogom most bemutatni, a képekért kattints a linkekre.

  1. Telepít és után nyissuk meg a programot, az üdvözlő képernyő fogad
  2. Első lépésként válasszuk ki azokat a fájlokat, melyeket védeni szeretnénk. Ezt megtehetjük akár fájlonként is, de választhatunk komplett könyvtárakat is.
  3. Második lépésként mondjuk meg a programnak, hogy egy egyszerűbb jelszavas belépést akarunk igénybe venni
  4. vagy pedig nevet + jelszót igénylő belépést szeretnénk végeredménynek.
  5. Állítsuk be a felhasználók listáját (neveket és jelszavakat). Ezt nem kell minden egyes esetben megtenni, mert ezt a listát el is menthetjük, majd a későbbiek során egyszerűen újra betöltjük (pl. újabb lapok védelme esetében)
  6. Állítsuk be a védelem típusát
  7. Hozzuk létre a védett lapokat ("create" gomb)

Körülbelül ennyi lenne, szerintem sokkal több magyarázatot nem igényel a használata, jó szórakozást :)

HTML LZW Pro 2.5

honlap: http://www.minihttpserver.net/htmllzw/index.php
licence: adware
letöltés: http://www.minihttpserver.net/htmllzw.zip

A program szintén fizetős, illetve reklám ellenében ingyen is használható, csak akkor el kell tűrnünk hogy a védett lapok megnyitásakor egy kis reklám ugrik fel.

A program amúgy a jelszavas védelmen kívül még fájlunk méretét is képes csökkenteni, ugyanis a képek kapcsán már megismert LZW tömörítést használja, 3DES típusú titkosítással megspéke lve.. Egyes esetekben ez amúgy akár 80%-os tömörítést is jelenthet. A védelem során választható, hogy JavaScript vagy VBScript típusú védelmet szeretnénk.

HTML Password Pro 3.0

honlap: http://www.minihttpserver.net/htmllock/index.php
licence: shareware
letöltés: http://www.minihttpserver.net/htmllock.zip

A program a már előzőekben is ismertetett módszerrel dolgozik, tehát védi honlapunkat egy név+jelszó páros segítségével. A program segítségével akár több mint 1000 nevet+jelszót is beállíthatunk, bár választható az egyszerűbb "csak jelszó" megoldás is. A felhasználókat akár csoportokba is rendezhetjük, megkönnyítve ezzel a magunk munkáját is.

Pár kép róla (screenshots):

Itt is választhatunk akár fájlonként, akár könyvtáranként is, egyszerűen beállíthatók a név+jelszó párosok, az "Options" gomb alatt pedig a program további tulajdonságait módosíthatjuk.

  • A védett lapok megtekinthetők Internet Explorerrel és Netscape böngészővel is
  • letiltható a "jobbegérgomb"-os kattintás
  • letilható hogy mutassa a linkeket a "status bar"-ban
  • letilthatjuk a honlapon a szövegek kijelölését
  • beállíthatunk "referrer checking"-t is (ilyenkor csak bizonyos irányból közelíthető meg a lap)
  • letilthatjuk hogy a lapunkat gépre mentsék
  • beállítható hogy a jelszavakat őrizze-e meg a böngészőprogram "cookie"-jaiban
  • módosítható a belépéses kinézet ( a narancssárga)
  • ha rossz jelszót írnak be, a látogatót elviszi egy másik lapra

Mint látható, a program elég sokat tud, szerintem jó választás bárki számára.

 

Most ezzel a 3 programmal bezárom ezt a részt, de a neten még jópár ilyen található, érdemes megnézni hogy mit talál a www.google.com pl. a "html password", "html protect", "html guardian" stb.. kifejezésekre.

==PHP==

Az alábbi kódok elég egyszerű megoldások, bár szerintem ennek ellenére jobb védelmet nyújtanak mint pl. a javascriptes védelmek. Használatukhoz PHP-t "tudó" webszerverre lesz szükségünk, ehhez egy lista itt található: Ingyenes magyar tárhelyek PHP, MySQL támogatással.

Az alább ismertett kódokon kívül még rengeteg hasonlót találhatunk a weben ingyenes formában, érdemes jól körülnéznünk közöttük, mert csak így tudjuk kiválasztani a nekünk leginkább megfelelőt.

p_protect

Ez egy elég egyszerű kis script, fél pillanat alatt beüzemelhető. A védett lap kiterjesztését módosítsuk "*.php"-ra, és a lap legelejére szúrjuk be ezt a kódot:

<?php include "./p_protect.php"?>

Utána másoljuk be a lentebb látható forrást egy üres txt-be, módosítsuk az alábbi részt, végül mentsük el "p_protect.php" néven ugyanabba a könyvtárba, ahol a védendő fájlunk is van.

$selfSecure = 1;
$shellUser = "demo";
$shellPswd = "demo";

protect

//===============================
put the following line in the PHP page you want to protect:include ("./p_protect.php");
//===============================

<?php

$selfSecure = 1;
$shellUser = "demo";
$shellPswd = "demo";

$adminEmail = "admin email here";
$fromEmail = $HTTP_SERVER_VARS["SERVER_ADMIN"];

$Version = "Your details here (for example The Webmaster – webmaster@xxx.com)";
if($selfSecure){
if (($PHP_AUTH_USER!=$shellUser)||($PHP_AUTH_PW!=$shellPswd)) {
Header(‘WWW-Authenticate: Basic realm="MCE Web ADMIN only!"’);
Header(‘HTTP/1.0 401 Unauthorized’);
echo "<html>
<head>
<title>Error – Access Denied</title>
</head>
<h1>Access denied</h1>
A warning message has been sent to the webmaster. Your IP address has also been recorded
<hr>
<em>$Version</em>";
if(isset($PHP_AUTH_USER)){
$warnMsg ="
Somebody tried to access the script on: http://".$HTTP_SERVER_VARS["HTTP_HOST"]."$PHP_SELF
using the wrong username or password:

Date: ".date("Y-m-d H:i:s")."
IP: ".$HTTP_SERVER_VARS["REMOTE_ADDR"]."
User Agent: ".$HTTP_SERVER_VARS["HTTP_USER_AGENT"]."
username used: $PHP_AUTH_USER
password used: $PHP_AUTH_PW";
mail($adminEmail,"Unauthorized Access",$warnMsg,
"From: $fromEmailnX-Mailer:$Version AutoWarn System");
}
exit;
}
}

if(!$oCols)$oCols=$termCols;
if(!$oRows)$oRows=$termRows;

?>

A működése elég egyszerű: mikor valaki meg akarja nyitni a védett fájlunkat, az megnyitja első körben a "p_protect.php"-t, ami kérni fogja az általunk meghatározott nevet és jelszót. Persze a "p_protect.php" név helyett mást is megadhatunk, akár másik könyvtárba is tehetjük, csak akkor ügyeljünk arra, hogy ennek megfelelően módosítsuk a védett fájlba illesztendő kódot is.

Simple Page Protect

Ez is egy végtelenül egyszerű, de jópofa script. Itt a védelem annyiból áll, hogy magában a védett lapba található meg a név+jelszó is, megnyitásakor először ezt fogja bekérni a látogatótól, csak utána jeleníti meg a tartalmat.

  • Másoljuk be az alább látható forrást egy txt-be
  • a nevet+jelszót módosítsuk kedvünk szerint
  • mentsük el mondjuk "simple_page_protect.php" néven
  • töltsük fel a szerverre
  • nyissuk meg a böngészőben a fájlt (pl. http://www.szerverneve.hu/vedelem/simple_page_protect.php)

Aki kíváncsi a demo-ra, kattintson ide.
név: gyikdemo
jelszó: gyikdemo

demo forrása

<?php
/******************************************************************************
* Simple Page Protect Version 1.0 *
* Copyright 2000 Frederic TYNDIUK (FTLS) All Rights Reserved. *
* E-Mail: tyndiuk@ftls.org Script License: GPL *
* Created 02/28/2000 Last Modified 02/28/2000 *
* Scripts Archive at: http://www.ftls.org/php/ *
*******************************************************************************/
/*******************************************************************************/
// Necessary Variables:

$LOGIN = "gyikdemo";
$PASSWORD = "gyikdemo";
// En: login /password
// Fr: login / mots de passe

// End Necessary Variables section
/******************************************************************************/

function error ($error_message) {
echo $error_message."<BR>";
exit;
}

if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $LOGIN) && ( $PHP_AUTH_PW == "$PASSWORD" )) ) {
header("WWW-Authenticate: Basic entrer="Form2txt admin"");
header("HTTP/1.0 401 Unauthorized");
error("Unauthorized access…");
}
?>

<!– Add code of your web page here –>
<HTML><HEAD><TITLE>védett rész</TITLE></HEAD>
<BODY BGCOLOR="white">
<BR><BR><P ALIGN="Center"><FONT FACE="Arial, helvetica" SIZE="+2" COLOR="#336699"><STRONG><EM>A védett honlapod tartalma</EM></STRONG></FONT></P><BR>

<BR><BR><BR><BR><BR><BR><BR><BR>

<CENTER><BR><BR>
<B><FONT COLOR="red">demo powered by <br><br> <a href="http://www.gyik.com">www.gyik.com</a></FONT></B>
</CENTER></BODY></HTML>

PHPPageProtect

honlap: http://php.warpedweb.net/pageprotect/
letöltés: http://php.warpedweb.net/pageprotect/download.php
tesztoldal – user: http://php.warpedweb.net/pageprotect/demologin.php (név/jelszó: test/test)
tesztoldal – admin: http://php.warpedweb.net/pageprotect/demoadmin.php (név/jelszó: demo/demo)

A PHPPageProtect script segítségével név+jelszavas védelemmel láthatjuk el bizalmas adatainkat a weben, az ezzel kapcsolatos informác iókat flat fájlokban tárolja. A védett lapokat úgy védi, hogy azokhoz hozzá kell adni egy sort (de ezt részletesebben lásd a telepítési útmutatójában).

A webes admin felületén új felhasználókat vehetünk fel, már meglévőket törölhetünk, módosíthatjuk a jelszavukat, megtekinthetjük a log-okat.

 

==PHP + SQL==

Ez a módszer már nagyobb lehetőségeket ad a webmesterek kezébe, általában admin felülettel rendelkeznek, az adatokat adatbázisban tárolják, a nevek/jelszavak/tulajdonságok utólagosan is bármikor módosíthatóak. Használatukhoz olyan webszerverre van szükség, ahol a PHP és SQL is elérhető, ehhez a már fentebb is említett linkek találtok segítséget: Ingyenes magyar tárhelyek PHP, MySQL támogatással.

Az alábbi scriptek mindegyikénél feltüntetem majd a szerző honlapját, ahol megtaláljátok a részletes instrukciókat a telepítéssel kapcsolatban. Vagy ha ilyet nem találtok a honlapon, akkor sem kell elkeseredni – a letöltött csomagban mindig benne lesz, csak követni kell az utasításokat. Általában amúgy elég egyszerűen beüzemelhetőek, nem kell megijedni a dologtól. Az angol tudás nem lesz hátrány.. ;)

phpSecurePages

honlap: http://www.phpsecurepages.com
letöltés: http://www.phpsecurepages.com/phpSecurePages.zip
tesztoldal: http://www.phpsecurepages.com/test/test.php

A script ingyenesen használható. Telepítése után nevet és jelszót fog kérni a védett lap. Webes admin felülettel rendelkezik, ahol akár több csoportot is felvehetünk, mindegyiknek más és más jogokat adva bizonyos tartalmakhoz. A kezdőlapot (ahol a nevet és jelszót kéri) elég könnyen lehet módosítani, csak töltsük be pl. Dreamweaver-be és hajrá. :)

phpuserlogin 2

honlap: http://phpuserlogin.oxyscripts.com/
letöltés: http://phpuserlogin.oxyscripts.com/download.php
tesztoldal: http://phpuserlogin.oxyscripts.com/demo.php

Ez szintén egy nagyon jó script, érdemes kipróbálni. Segítségével aránylag könnyen tehetünk bizonyos lapokat védetté, ennek is van webes admin felülete, az adatokat, jelszavakat stb. titkosítva SQL adatbázisban tárolja.

vAuthenticate

honlap: http://www.beanbug.net/vScripts.php
letöltés: http://www.beanbug.net/Scripts/vAuthenticate_3.0.zip
tesztoldal: nincs

A script – készítője szerint – egy forradalmian új dolgot hozott az "felhasználó-azonosítás" területére (ezt majd mindenki döntse el magában hogy így van-e :D ) Van egy admin felület, ahol a webmesterek új felhasználókat vehetnek fel, vagy akár új felhasználói csoportokat is. Lehetőség van mind az egyéni felhasználókat, mind pedig a csoportokat inaktív állapotba helyezni, tehát nem kell feltétlenül törölni vkit ha azt akarjuk hogy "x" ideig mondjuk ne tudjon belépni. Összegezve: szvsz király script :)

Password Protection

honlap: http://www.webworkzware.com/index.php/page/password_protection
letöltés: http://www.webworkzware.com/index.php/page/download&title=password_protection
tesztoldal: http://www.webworkzware.com/index.php/page/demo/password_protection_demo

A script elég egyszerűen beállítható, egy admin felületet kapunk – ahol a nevek és jelszavak meghatározásával szabályozhatjuk, hogy ki mihez férhet hozzá lapunkon. Ami sok felhasználó számára szimpatikussá teheti ezt a scriptet, hogy a védendő lapokhozelég egy sort hozzáadnunk, tehát bátran állíthatom – telepítése és üzembe helyezése meglehetősen egyszerű.

Hacker Hunter

honlap: http://www.polar-lights.com/hackerhunter/
letöltés: http://www.polar-lights.com/hackerhunter/hacker.hunter.RSA_b0.994.dev.zip
tesztoldal – regisztráció: http://www.polar-lights.com/auth/register.php
tesztoldal – user: http://www.polar-lights.com/auth/ (név/jelszó: test/test)
tesztoldal – admin: http://www.polar-lights.com/auth/ (név/jelszó: admin/admin)

Ez a script komplex megoldást kínál könyvtáraink védelméhez. Egyszerű telepíteni, csak az Apache szerver standard moduljait használja, semmit extrát. Megakadályozza, hogy több felhasználó is ugyanazon jelszóval jelentkezzen be a honlapon, úgyhogy nincs értelme szétosztogatni a jelszavakat pl. a haverok számára. Ha ilyesmi történik, a script "befagyasztja" a jelszót, generál egy újat és azt elküldi az eredeti felhasználó Email címére.A felhasználók saját maguk is módosíthatják jelszavukat, illetve az adminisztrátor webes felületen vehet fel új felhasználókat, módosíthatja beállításaikat, megnézheti a log-okat. stb..

 

== ASP ==

Sajnos a téma ilyen jellegű oldalához nem sokat konyítok, s oha nem fogalkoztam ASP-vel. Ennek fő oka, hogy nincs túl sok free szerver (főleg magyarokra gondolok itt), ahol ezt tesztelni tudtam volna, meg úgy igazából nekem szimpatikus a PHP/SQL, nem szándékozok váltani.

A fentiekből következik, hogy ebbe a részbe nem tudok és nem is igazán akarok belemélyedni, inkább csak egy kis ötlettel szolgálnék – merre érdemes elkezdeni a keresgetést. :)

Itt van egy gyűjtemény ilyen ASP scriptekből, érdemes átböngészni, legtöbbnél ott a honlapja, ahol remélhetőleg találsz útmutatót a beüzemeléssel kapcsolatban.

http://www.hotscripts.com/ASP/Scripts_and_Components/User_Management/

== SZERVEROLDALI KÖNYVTÁRVÉDELEM ==

Nekem ez a kedvencem, szvsz elég megbízható a többi megoldáshoz képest, használata egyszerű. A védelem nem csak egyes fájlokra terjed ki, hanem védett könyvtárban lévő összes fájlra is vonatkozik. Ha egy könyvtárhoz beállítottuk a megfelelő hozzáféréseket, hiába mutatnak rá mondjuk akár direktben egy a könyvtárban található zip-re, a letöltés csak úgy fog működni, ha előtte megadják a belépéshez szükséges nevet és jelszót. Ez a megoldás csak itt működik, a többi módszer esetében nem.

A módszerhez hozzátartozik még, hogy nem szükséges használatához PHP vagy SQL, csak a szervernek kell a megfelelő beállításokkal üzemelnie. A magyar ingyenes tárhelyek esetében a www.extra.hu -n biztosan működik a módszer, most próbáltam ki. A többi szerver esetében már nem ilyen jók a tapasztalataim, sajnos :(

Nézzük hogy is kell használni.

Regisztráljunk egy tárhelyet a www.extra.hu -n, csináljunk egy új könyvtárat mondjuk "members" néven. A könyvtár chmod jogosultságait állítsuk be 777-re, majd később visszatesszük a default 755-re. Ez azért szükséges, mert a script létre fog hozni új fájlokat ( 2 db-ot, ezek fogják elvégezni a védelmet), és a 777-tel adunk írási jogot a könyvtárhoz. A 2 újonnan létrehozott fájl neve:

  • htaccess
  • htpasswd

Az első szabályozza a hozzáférést, a második pedig a jelszavakat tárolja.

2 PHP scriptet mellékelek, mindkettő képes a 2 fenti fájl létrehozására. Persze azért van köztük egy kis különbség..

makehtaccess

letöltés: makehtaccess.zip

A scriptet kicsomagolás után töltsük fel a könyvtárba, majd nyissuk meg böngészőben. Kérni fog egy nevet és jelszót – itt kell megadnunk hogy mivel lehessen majd belépni a könyvtárba. Nyomjuk meg a "make" gombot, kész is vagyunk. Ezután bármit teszünk a könyvtárba, azt webes letöltéskor már csak úgy érjük el, ha beirjuk a megfelelő nevet és jelszót.

PHPAccess-Login 1.02

letöltés: phpaccess102.zip

Ez a script már lényegesen többet tud mint az előző, ennek ellenére ez is ingyenes. Letöltés után csomagoljuk ki, majd nyissuk meg egy szerkesztő programban (pl. jegyzettömb). Találunk benne egy ilyen részt:

$adminloginname = "demo"; /* Enter the admin-username of your choice */
$adminloginpass = "demo"; /* Enter the admin-password of your choice */

Itt adjunk meg egy nevet és jelszót, ezzel tudjuk majd használni a scriptet (Figyelem, ezt még nem a tényleges védelem!). Ha ez megvan, töltsük fel a scriptet a webszerverre, majd nyissuk meg böngészőben. Kapunk egy belépéses lapot, ahova be kell írnunk az előbb beállított nevet és jelszót. Így fog kinézni:

PHPAccess-Login
 
Language:
 
Login-Name
Login-Pass
phpaccess by krizleebear

Lépjünk be, kapunk egy ilyen felületet, ehhez alább találjátok meg a magyarázatot.

phpaccess 1.02
Language:
 
Status :
 
Server-info and current path :
Server: www.extra.hu
Path: / disk / raid / e / l / demooldal / demo1
 
Create new user :  
user pass
Confirmation :
 
 
Import users from textfile :  
 
Delete all users :
phpaccess by krizleebear

 

  • A felső "legördülő menüben" választható egyéb nyelv is mint az angol.
  • A "Status" részen látható, hogy jelenleg a könyvtárban nincs beállítva még semmi, nem léteznek a fájlok.
  • A "Server-info and current path" alatt látható, hogy melyik szerveren van a script, melyik könyvtárban.

Most jön a lényegi rész

"Create new user" – itt vehetjük fel az új felhasználókat (akár többet is). Írjuk be a nevet, jelszót, majd utóbbit a "Confirmation" rész alatt ismételjük meg a biztonság kedvéért (nehogy félreüssük). A "< i>Create" gomb megnyomásával létre is hozhatjuk azt a 2 ominózus fájlt. A további userek felvétele szintén ezzel a módszerrel hajtható végre.

"Import users from textfile" – itt feltölthetünk, importálhatunk már meglévő user adatbázist, ami tulajdonképpen nem más, mint egy "*.txt", amiben a nevek és jelszavak az alábbi módon vannak tárolva:

username1,password1
username2,password2
username3,password3
stb..

  • A "create" gomb megnyomása után ezt kapjuk eredményül (lásd lentebbi kép), kicsit több minden van rajta. Nézzük miben más.
  • A "status" ablakban látható, hogy itt már elkészültek a fájlok, a usert sikeresen beállította.
  • "Existing users" – a már létrehozott felhasználók listája
  • "Update Password" – a már létrehozott felhasználók jelszava itt módosítható utólagosan
  • "Delete existing user" – a már létrehozott felhasználókat itt tudjuk törölni
  • "Delete all users" – ez már volt elsőre is, de itt írom le: az összes felhasználó törlése 1 gombnyomással.

Ezzel vége is leírásomnak, remélem hasznát veszitek :)

 

13 HOZZÁSZÓLÁS

  1. a kész program használatánál nem tesz ki reklámot ha frameset-et védessz le

  2. Nagyon tetszik a szerver oldali könyvtárvédelem. A PHPaccess 1.02 vel próbálkoztam. Azthiszem megértettem a magyarázatot, és minden úgy csináltam (?) ahogy kell, de sajnos nem működik. AMikor beírom a nevem és a jelszót, megnyílik a nagyobb felület, közli, hogy még nincsenek meg a szükséges fájlok, és nincs felvett user. Felveszek egy user-t, ettől létrehozza a két fájl-t, és sikeresen felvesz a usert. De ezek után megáll az élet. Ha még egy user-t fel akarok venni, akkor megjelenik egy ablak, hogy jelszóvédett felületre akarok belépni, de sem az előre beálított nevem és jelszavam, (azt most visszaállítottam “test, test” -re) sem a felvett user- jelszóval nem enged tovább. És ha látogatóként akarok belépni weblap jelszóval védet részére, akkor is ez a helyzet. Mit rontok el? Valami beállítás az extra.hu szerverével?
    Ha tudsz még egy kicsit segíteni, annak nagyon örülnék.
    Köszi: Dani

  3. Sziasztok! Nekem a Password Protection rész kellene. mysql-el sterettem volna ötvözni de sajnos már nem található a megadott linken. valaki tudna segíteni?

  4. Sziasztok!
    Végig olvastam az egészet, a PHPAccess-Login 1.02 hasonlítana ahhoz, ami nekem kellene, de..

    Egy olyan védett oldal kellene nekem, ahol a felhasználónak emailben elküldök egy generált kódot, a linkre kattintva a felhasználó a védett oldalon lévő zip fájlt le tudja tölteni.

    Erre kérek tőletek egy kis segítséget.
    Üdv
    Wjani

  5. Ja és az egészet úgy kell, hogy (lehet, hogy van jobb):
    van egy dekódoló rész, annak linkjét és mögötte a ?kar=GENERALTKOD
    Innen a kódoló az űtalakítja, keress a mysql-ben és ha jó a kód, töröl és átirányít.
    Az e-mailküldés meg ennek a “halandzsa” része, amit mondtam itt van: http://w3schools.com

    Ja és még: a véletlen műveletet 5-10-szer el kell végezni.

  6. De nem vagyok szakértő. Amit írtam, 90%, hogy jó, de lehet, hogy van egyszerűbb. Esetleg még van, aki kódot is tud. :-)

  7. Sziasztok!

    Nekem egy olyan skript kellene ami egy másik oldalba belépéssel egy bizonyos link rákattintásával be is lép az oldalra.

    Érthetően: van az oldalam ami foglalkozik egy internet rádióval,abban az oldalban én létrehoznák egy csoportot amiben csak a rádiósaim lennének. na most hogy ne keljen kiadnom ennek az adminját minden rádiósnak: http://radiokfm.hopto.org:8007 azt szeretném ha az oldalamban a
    csoporton belül ha rákattintanak a linkre akkor egyből belépnének az admin ba és így tudnának csatlakozni adásba.
    Ez azért lenne fontos mert ha egy műsorvezető kilép csak megvonnám a csoport jogot és máris nem tudna hozzáférni,nem kellene hetente jelszót cserélni.
    Előre is köszönöm .

  8. Srácok!

    A két “Javascript – Multiple login” közül egyik sem működik! A másodiknál még a szövegdoboz sem jelenik meg, ahova a nevet, jelszót kell írni. Csak a login gomb.

  9. Üdv,
    Kipróbáztam mindkét könyvtár védelmet a PHPacces -t meg a makehtacces -t is. Mivel az extra.hu bezárt, gondoltam megpróbálom a freeweben… Feltettem a könyvtárba rendesen megcsináltam, és mégsem kér felhasználót és jelszót, tehát nem működik. Az fw hibája lehet vagy esetleg én ronthatok el valamit?!

  10. Sziasztok !
    Nekem a PHPAccess 1.02-vel lenne egy kis problémám…
    Feltöltöm egy adott könyvtárba, a könyvtár CHMOD jogosultságait átírom 777-re míg a php fájl-ét 775-re (readme-be ezt írta).
    Megnyitom a fájlt (phpaccess102.php) beírom a nevet illetve a jelszót és semmi, meg se moccan, még nyelvet se vált csak egy minimális oldalfrissítést hajt végre.
    Ötletem sincs, hogy mi lehet a gond.
    Nem ingyenek a tárhely tehát majdnem 100%, hogy a htaccess engedélyezve van..
    Ötlet? :/

  11. Üdv!

    Az miért lehet, hogy a PHP scriptes dolgoknál mindig InternalServerError hibaüzenetet kapok amikor meg akarom nyitni a .php file-t?
    Köszi

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét