Sobre poner contraseña en una página web
Diste el siguiente ejemplo para poner una contraseña en una página web con java script.
La protección de una página Web con contraseña se da normalmente a través de un CGI (Common Gateway Interface), que le pide al visitante la palabra de orden y el login eventual de acceso. La colocación y la configuración de un CGI exigen profundos conocimientos técnicos, eso sin contar con que muchos servidores gratuitos (Geocities, Aspide, etc.) no permiten, por razones de seguridad, depositar los propios CGI u otros programas residentes en los propios discos duros.
Javascript simplifica este procedimiento y permite programar una contraseña de acceso seleccionado a un sitio Web o sólo a algunas de sus páginas. Hay que admitir desde este momento que esta solución no ofrece las mismas garantías de seguridad que una contraseña creada por un programa CGI, que sigue siendo, sin duda, la mejor solución para quienes tiene necesidades profesionales.
La ductilidad del lenguaje de scripting permite varias soluciones, más o menos eficaces, para la creación de contraseñas en páginas Web. En este artículo van a analizarse dos ejemplos indicativos.
El primer ejemplo es fácil de realizar y de comprender. El código es HTML, y hay que colocarlo entre las marcas <HEAD></HEAD> de un documento Web:
<script language="JavaScript">
function passWord() {
var testV = 1;
var pass1 = prompt('Escribe tu contraseña');
while (testV < 3) {
if (!pass1) history.go(-1)
if (pass1.toLowerCase() == "HTMLpoint") {
alert('Tu contraseña es exacta');
break;
}
testV+=1;
var pass1 = prompt('¡Equivocada! Puedes volver a intentarlo.','Contraseña');
}
if (pass1.toLowerCase()!="otra" & testV ==3) history.go(-1);
return " ";
}
document.write(passWord());
</script>
El resultado creado por este código es, para todos los navegadores que soportan javascript (Netscape, Internet Explorer, Opera y otros), la visualización de una ventana de advertencia que pide lo que está escrito entre comillas simples en la línea de código:
var pass1 = prompt('Escribe tu contraseña');
La contraseña que se le pretende pedir al visitante (en el ejemplo "HTMLpoint") se mete entre comillas dobles en la línea de código:
if (pass1.toLowerCase() == "HTMLpoint")
La ventana de advertencia prevé una cadena vacía que hay que rellenar con la contraseña de acceso.
"toLowerCase" es un método que transforma la cadena en caracteres minúsculos. No existe un equivalente en HTML. Los métodos son tipos específicos de funciones que necesitan argumentos, se asocian a objetos, elaborándolos sin definir sus características. Como las funciones, también los métodos se reconocen por la presencia de paréntesis que siguen a la palabra, pero, a diferencia de aquéllas, no están precedidad por el término "function".
Modificando el código script se puede introducir el número máximo de intentos permitidos si uno se equivoca al escribir palabras de orden equivocadas. En el ejemplo, dicho número máximo de intentos permitidos es 3:
if (pass1.toLowerCase()!="otra" & testV ==3) history.go(-1);
El método history. Go(-1) le indica al navegador la página que se quiere ver después del tercer y último intento fallido. En este caso (-1) significa que la página mostrada será la misma desde la que se ha intentado entrar a la página con contraseña. En otras palabras, dicho código simula el uso de la tecla "back" o "atrás" del navegador. Para hacer que esta función sea "user friendly" se puede sustituir (-1) el enlace por otra página que advierta amablemente del error que se ha producido al escribir la contraseña. Teniendo en cuenta que hay que llamar a la nueva página "respuesta.htm", el código es:
if (pass1.toLowerCase()!="otra" & testV ==3) location.href = "respuesta.htm";
En el caso en que la contraseña se escriba correctamente, el mensaje de conformidad que aparece en una nueva ventana antes de cargar la página protegida lo crea el código:
alert('Tu contraseña es exacta');
Lo probé y funciona perfectamente pero el problema es que al pulsar el botón cancelar en la ventana del mensaje la página se carga, con lo que no consigo el objetivo de que solo se vea el código si se pone bien la contraseña.
¿Me podrías decir como conseguir que cuendo se pulse el botón cancelar se abra otra página diferente por ejemplo salir.htm?
La protección de una página Web con contraseña se da normalmente a través de un CGI (Common Gateway Interface), que le pide al visitante la palabra de orden y el login eventual de acceso. La colocación y la configuración de un CGI exigen profundos conocimientos técnicos, eso sin contar con que muchos servidores gratuitos (Geocities, Aspide, etc.) no permiten, por razones de seguridad, depositar los propios CGI u otros programas residentes en los propios discos duros.
Javascript simplifica este procedimiento y permite programar una contraseña de acceso seleccionado a un sitio Web o sólo a algunas de sus páginas. Hay que admitir desde este momento que esta solución no ofrece las mismas garantías de seguridad que una contraseña creada por un programa CGI, que sigue siendo, sin duda, la mejor solución para quienes tiene necesidades profesionales.
La ductilidad del lenguaje de scripting permite varias soluciones, más o menos eficaces, para la creación de contraseñas en páginas Web. En este artículo van a analizarse dos ejemplos indicativos.
El primer ejemplo es fácil de realizar y de comprender. El código es HTML, y hay que colocarlo entre las marcas <HEAD></HEAD> de un documento Web:
<script language="JavaScript">
function passWord() {
var testV = 1;
var pass1 = prompt('Escribe tu contraseña');
while (testV < 3) {
if (!pass1) history.go(-1)
if (pass1.toLowerCase() == "HTMLpoint") {
alert('Tu contraseña es exacta');
break;
}
testV+=1;
var pass1 = prompt('¡Equivocada! Puedes volver a intentarlo.','Contraseña');
}
if (pass1.toLowerCase()!="otra" & testV ==3) history.go(-1);
return " ";
}
document.write(passWord());
</script>
El resultado creado por este código es, para todos los navegadores que soportan javascript (Netscape, Internet Explorer, Opera y otros), la visualización de una ventana de advertencia que pide lo que está escrito entre comillas simples en la línea de código:
var pass1 = prompt('Escribe tu contraseña');
La contraseña que se le pretende pedir al visitante (en el ejemplo "HTMLpoint") se mete entre comillas dobles en la línea de código:
if (pass1.toLowerCase() == "HTMLpoint")
La ventana de advertencia prevé una cadena vacía que hay que rellenar con la contraseña de acceso.
"toLowerCase" es un método que transforma la cadena en caracteres minúsculos. No existe un equivalente en HTML. Los métodos son tipos específicos de funciones que necesitan argumentos, se asocian a objetos, elaborándolos sin definir sus características. Como las funciones, también los métodos se reconocen por la presencia de paréntesis que siguen a la palabra, pero, a diferencia de aquéllas, no están precedidad por el término "function".
Modificando el código script se puede introducir el número máximo de intentos permitidos si uno se equivoca al escribir palabras de orden equivocadas. En el ejemplo, dicho número máximo de intentos permitidos es 3:
if (pass1.toLowerCase()!="otra" & testV ==3) history.go(-1);
El método history. Go(-1) le indica al navegador la página que se quiere ver después del tercer y último intento fallido. En este caso (-1) significa que la página mostrada será la misma desde la que se ha intentado entrar a la página con contraseña. En otras palabras, dicho código simula el uso de la tecla "back" o "atrás" del navegador. Para hacer que esta función sea "user friendly" se puede sustituir (-1) el enlace por otra página que advierta amablemente del error que se ha producido al escribir la contraseña. Teniendo en cuenta que hay que llamar a la nueva página "respuesta.htm", el código es:
if (pass1.toLowerCase()!="otra" & testV ==3) location.href = "respuesta.htm";
En el caso en que la contraseña se escriba correctamente, el mensaje de conformidad que aparece en una nueva ventana antes de cargar la página protegida lo crea el código:
alert('Tu contraseña es exacta');
Lo probé y funciona perfectamente pero el problema es que al pulsar el botón cancelar en la ventana del mensaje la página se carga, con lo que no consigo el objetivo de que solo se vea el código si se pone bien la contraseña.
¿Me podrías decir como conseguir que cuendo se pulse el botón cancelar se abra otra página diferente por ejemplo salir.htm?
1 Respuesta
Respuesta de leonn18
1