Pagine protette lato client
Detto questo, ecco un altro script dove questa volta si tratta di una password cifrata generata da un calcolo matematico per nulla semplice.
<script
language="JavaScript" type="text/javascript">
<!-- Start
<!-- prelevato su http://www.web-link.it
function CalcolaPagina(form) {
StringaImmessa = form.testoinput1.value;
var Decodificata="";
TabCaratteri="0123456789abcdefghijklmnopqrstuvwxyz._~ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for(posiz=0; posiz < StringaImmessa.length; posiz++) {
var QuestoChar = StringaImmessa.substring(posiz, posiz+1);
var NuovaPos = TabCaratteri.indexOf(QuestoChar)^19;
Decodificata += TabCaratteri.substring(NuovaPos, NuovaPos+1);
}
location = Decodificata + ".htm";
}
// End -->
</script>
Trasferire tutto il codice
fra i tags: <head> e </head>.
Una volta inserito lo script nella parte Head non rimane che aggiungere nel
body il form per l'introduzione password:
<FORM
NAME="testform" onSubmit=false;>
Digita la password: <INPUT TYPE="text" NAME="testoinput1" VALUE=""
SIZE=15>
<INPUT TYPE="button" NAME="button" Value="Verifica password"
onClick=CalcolaPagina(this.form);><BR>
</FORM>
Adesso provare ad introdurre la parola chiave che in questo caso è: ik1amc
Se introdotta correttamente (maiuscole, minuscole, spazi) vi ritroverete sulla pagina protetta, diversamente comparirà la classica pagina di errore dovuta a pagina inesistente.
Essendo il nome della password una decodifica del nome assegnato alla pagina da richiamare, risulta alquanto difficile scegliersi entrambi i nomi a priori, questo perchè non si conosce l'algoritmo di decodifica.
Praticamente si dovra' scegliere soltanto una delle due (password o nome pagina) lasciando che sia lo script a calcolare l'altra.
Un altro esempo esempio: se ho una pagina che si chiama prova.htm la relativa codifica risulta essere : a8bcp. Non l'ho scelta io ma è stata calcolata direttamente dallo script che ha cifrato il nome da me scelto per la pagina stessa, che in questo caso era prova.
Ho scelto il nome della pagina (prova) ho introdotto il nome nel form e ho premuto il pulsante di lato, il programma ha richiamato la pagina equivalente, in questo caso a8bcp.htm che però non esiste ma che mi ha permesso di leggere la codifica relativa al nome che avevo introdotto: prova.
E' vero anche il contrario e cioè introducendo a8bcp si ottiene come codifica prova, per cui si puo' scegliere quale dei due nomi far diventare password e lasciare l'altro come nome da assegnare alla pagina.
Un'ultima cosa, lo script richiama pagine con estensione htm e non html, per cui dovrete necessariamente usare la stessa estensione prevista dallo script. Inutile dirvi che volendo si potrebbe cambiare l'estensione del file allo script stesso.
Per chi avesse un sito con frames e volesse aprire la pagina facendo sparire il frame,come succede con target="_top", dovrà modificare la riga dello script: location = Decodificata + ".htm"; in modo che diventi: parent.location = Decodificata + ".htm";