Password para páginas .html
9 seguidores
Hola gente,
Para un proyecto web necesito crear algunas secciones donde se acceda mediante password pero sin lenguaje de servidor, con html plano. He buscado en el servidor pero no he encontrado nada y san google me da alguna solución, que no me han parecido demasiado buenas, con javascript. Acudo a vosotros por si sabeis alguna manera mejor de hacerlo.
gracias,
albert.
zigotica
hombre, ya puestos a no proteger nada de nada, lo mejor sería pasarle una url directa a cada cliente. ninguna solucion es perfecta, pero por lo menos se deberia usar htpasswd o autenticacion contra bbdd.
x8
Muy buena idea zigotica. Para el caso de amc yo creo que la mejor..
zigotica
hay otra forma, pero muy cutre y que yo tampoco usaria jamas (lo mas facil es htaccess, aunque de hecho NADA es seguro 100%).
1. Formulario con un campo input=text para el "login".
Ejemplo: dmstk
2. El valor del login se pasa a una variable javascript.
Ejemplo: var peich = document.forms[0].login.value; // "dmstk"
3. Se usa esa variable peich para que al hacer submit vayamos a una url del estilo dominio/users/carpeta, donde carpeta = nombre de la variable.
Obviamente solamente se tendrá acceso a las carpetas que existan que coincidan con la variable peich. Todas las paginas de destino (carpetas de cada usuario) deberian tener un nofollow, mejor si los robots no las ven.
Repito, yo no lo usaria nunca, pero deberia funcionar.
amc.designz
Por si a alguien le sirve, he encontrado esto:
<code>function passWord() {
var testV = 1;
var pass1 = prompt('Escribe tu contraseña');
while (testV < 3) {
if (!pass1) history.go(-1)
if (pass1.toLowerCase() == "boc") {
alert('Tu contraseña es exacta');
break;
}
testV+=1;
var pass1 = prompt('¡Equivocada! Puedes volver a intentarlo.','Contraseña');
}
if (pass1.toLowerCase()!="otra" & testV ==10) history.go(-1);
return " ";
}
document.write(passWord());</code>
Por supuesto nada seguro (el cliente lo sabe...), pero funciona para un simple acceso con password a una página.
albert.
amc.designz
Miraré el tema del Htacces.
Gracias por vuestras repuestas.
albert.
t.a.a.r.q.
Es que para que sea seguro debes hacerlo siempre por el lado del servidor, tienes dos opciones, una de PHP, que más o menos consiste en añadir una "capa" de seguridad a los archivos que quieras ocultar, cuando el usuario se haya autentificado se creará una sesión y podra trabajar a gusto.
La otra opción es la del .htpasswd, que funciona para servidores apache (no se si en más).
Esta opción consiste en añadir un pequeño archivo de texto plano en la carpeta que no quieres que se vea, en el archivo figuran una serie de parámetros para configurar los pares "usuario-contraseña".
El primer sistema es el que usan los foros (por ejemplo), el segundo es el típico que usan los routers cuando quieres acceder a la configuración, phpMyAdmin cuando quieres autentificarte, etc.
Bueno, todo eso es mucho más complejo si quieres hacer algo que sea seguro de verdad, pero la base es esa.
Un saludo.
Teresa
Y solo por curiosidad, cómo se haría del lado del servidor? (Perdonad mi ignorancia, soy más diseñadora que programadora)
Kr0n
Si, seguro. Y si lo comparas con cualquier solución cliente, ni te digo.
almostDesign
Albert, mirate lo del httacess que es bien fácil (y seguro, verdad?).
Kr0n
Efectivamente, .htaccess y .htpasswd no tienen nada que ver con PHP, sino con Apache, pero yo habia entendido (quizás mal) que no podía tener ninguna solución del lado del servidor no?
t.a.a.r.q.
Bueno, lo que no sé es si es necesario tener un intérprete PHP para utilizar .htaccess y .htpasswd, ya que es Apache el que hace uso de ellos.
En este tutorial puedes ver cómo se utiliza de una forma clara, y aunque esté haciendo uso de PHP en algunas cosas, no es imprescindible.
Saludos.
--
[size=9:1c980dc796](PD: Si me he equivocado que álguien me corrija, como ya he dicho, no se hasta qué punto es necesario el PHP al ser algo que sólo tiene que ver con apache...)[/size:1c980dc796]
Vixx
También puedes comparar lo que meta el usuario con una lista de palabras, como dice HARTUM, pero en lugar de guardarlas en texto plano, puedes guardar el <em>hash</em> o resumen de la contraseña. Hay alguna que otra biblioteca de javascript para obtener el SHA1 o MD5. De hecho en la misma página hay algun ejemplo de cómo montar un sitema de autentificación, aunque no lo he probado:
Esto tampoco es 100% seguro; si se usan claves cortas se puede intentar un ataque con una base de datos con los resumenes precalculados, pero es mucho más seguro que guardarlas en texto plano, cuya seguridad es nula.
También hay que tener en cuenta que, aunque un atacante no sea capaz de averiguar la clave, siempre puede intentar escribir javascript desde la barra de direcciones para saltarse la protección.
Otra cosa que se me acaba de ocurrir, es que en lugar de guardar el <em>hash</em> de la clave, utilices el <em>hash</em> que se genera como nombre de la página al que redirigirás al usuario, así es más dificil que te la pillen.
hartum
tb puedes mirarte el tema de escribir cookies con javascript, o tener en un array un listado con las passwords, y comparar lo que escriba un usuario con el listado.
Sea como sea lo dicho inseguridad total.
amc.designz
Que va a ser inseguro lo tengo clarísimo y así se lo he hecho saber al cliente... el tema és que el proyecto és un site sencillo (para un fotógrafo) hecho en xhtml+css y ahora se me descuelga con el tema de entrar con password en alguna sección, concretamente una sección de galerias donde cada cliente tenga acceso con su password.
Putaditas del oficio, ya me miraré el tema javascript...
Gracias por vuestras respuestas.
albert.
x8
Mmm lo de no utilizar lenguaje servidor es por limitaciones en el hosting o por no dominarlo? Si no lo utilizas creo que cualquier cosa que hagas va a ser bastante insegura.
Si el problema es limitación del hosting, lo único que se me ocurre es que te hicieras lo siguiente:
· Por un lado en un servidor externo un fichero php/asp o con lo que tú trabajes, el cual recibiera vía POST dos variables, el user y el pass y que tras hacer la comprobación devolviera correcto o incorrecto.
· Por otro lado en tu web sólo tendrías que utilizar un poquito de Ajax, que se limitaría tan sólo a llamar al fichero anterior en el servidor externo enviándole user y pass, y recibir el correcto o incorrecto.
De esta manera en tu web en ningún momento utilizas lenguaje servidor, tan sólo javascript necesario para Ajax..
Kr0n
Pues así a bote pronto, chungo no? Sin lenguaje servidor implica que el password estará en cliente (malo), y si tampoco puedes usar algo del estilo de .htpasswd... puf
no se que decirte la verdad, a ver si a alguien se le ocurre algo!