JMiur [E]

Son muchos los que preguntan algo cuya respuesta parece no satisfacerlos o se niegan a aceptarla, probablemente, porque si uno busca en la web, verá cientos de artículos explicando como hacer lo que yo digo que no puede hacerse o, mejor dicho, lo que digo que NO DEBE hacerse y, en este caso, no es un tema de opiniones personales y discutibles, es algo elemental.

La pregunta repetida es ¿cómo restringir el acceso a determinadas páginas? ¿cómo permitir la descarga de ciertos archivos a determinados usuarios? ¿cómo hago para agregar una contraseña a mi blog de Blogger?

Y la respuesta es sencilla, simplemente NO hay manera de hacer eso porque el único lenguaje que podemos usar es JavaScript y con ese lenguaje no existe ninguna forma segura de establecer una contraseña por una razón básica: el código es visible y por lo tanto, cualquiera puede verlo. Es lo mismo que escribir una pregunta y dejar visible al respuesta.

¿Se puede hacer? Si, claro pero ¿para qué? Es completamente inútil. El manejo de contraseñas requiere de lenguajes que se ejecuten en el servidor y no en el navegador.

¿No están convencidos? Usen CTRL+U para mirar el código fuente de los "ejemplos prácticos" que se ofrecen.

16 comentarios:

Emilio Cobos Álvarez  

Puede que sea una locura, pero no me parece descabellado pedir la contraseña via JS y enviarla a un script PHP que se encuentre en un hosting propio, donde se comprueba la contraseña y devuelve un resultado (true o false, por ejemplo).

Basándose en ese resultado, podría abrirse una página nueva...

Aunque también pensándolo esa página se podría ver desde el código fuente, por que habría que enviarla también desde PHP... Miraré un poco... y estaré al tanto de tu respuesta.

JMiur  

Es lo que dice el post, que no puede usarse sólo JavaScript y que para hacer una contraseña segura, siempre pero siempre, debe usarse un lenguaje que ejecute el servidor como PHP o cualquier otro.

Responder
Wi Wa  

Hola JMiur, yo creo que sí se podría hacer con Javascript, ayudándonos con la tecnología Ajax y unas cuantas galletitas, que también se pueden gestionar con Javascript :D saludos!

Atte. Wiwa

JMiur  

Idem.

Responder
Jorge Mamani  

Se puede dar el caso de que mediante php y javascript se pueda hacer una pasarela de identificación pero que caso tendría si todas las urls son públicas, y si se tiene un blog privado, pues para que serviría, solo bastaría ir agregando a las personas como lectores invitados.

Saludos.

Responder
JMiur  

A ver si entiende porque no parece claro. La entrada pretende responder a una pregunta repetida que sintetizo: "¿cómo restringir el acceso a determinadas páginas de un blog de Blogger utilizando una contraseña?"

La respuesta es una sola: NO SE PUEDE. Blogger tiene dos tipos de blogs, los privados y los públicos y no hay términos medios.

Frente a esa respuesta, hay quienes no se convencen y muestran algunos de los ejemplos agregados a la entrada en forma de imágenes diciendo "Ahií dice que si, este es un método, este es otro, etc"

La siguiente respuesta sigue siendo NO, ESO NO FUNCIONA de ninguna manera porque cualquier contraseña generada y manejada con JavaScript es inútil ya que, el único procedimiento seguro es utilizar lenguajes que ejecute el servidor.

Cuando se habla de PHP se habla de eso pero, Blogger no ejecuta PHP por lo tanto, se requiere un servidor externo y, si se tiene un servidor externo que procese esto, bastaría colocar todo lo que uno quiere restringir en ese servidor y asunto terminado s decir, no usar Blogger.

Si quiero colocar un archivo para descargar de modo restringido, como Blogger tampoco aloja archivos y debo usar un servidor externo y lo que debo hacer es restringir ese servicio y listo.

Pero, voy a suponer que en un rapto de locura uso PHP para verificar la contraseña y devolver la url de acceso a esa página restringida (aunque sería más fácil re-dirigirla directamente y obviar todo lo demás)

¿Una página que está alojada dónde? ¿en el mismo blog? Eso no sirve, por mucho que la esconda, sigue allí y es accesible igual, está indexada, es parte de los feeds como todas las demás del mismo blog porque TODO EL BLOG ES PÚBLICO.

Entonces, si sigo con mi absurdo sistema ¿que debería hacer? ¿Ponerla en otro blog de Blogger? Eventualmente, tampoco será restringida; alguien puede verla igual, incluso por casualidad.

Las únicas alternativas posibles son usar blogs privados y enviar las invitaciones correspondientes a cada una de las personas a las que quiero permitir el acceso; usar otro CMS como WordPress que sí admite la creación de entradas privadas dentro de un blog público o, si ya tengo un servidor con PHP, usarlo para eso, para crear mi sitio allí y olvidarme de tratar que las naranjas sean mandarinas.

Wi Wa  

Hola Sr. JMiur, no se enoje por favor :( tan sólo en aras del aprendizaje se podría mencionar que existen varios servicios gratuitos para tener PHP en la nube, los cuales podrían ser llamados para ejecutar un "artífice" de autenticación en cualquier página (sea blog o no), éste podría devolver unas instrucciones Javascript además de la declaración de unas galletitas :) ... sé que el hecho de utilizar un servidor externo en un blog hace que éste último pierda su razón de uso, sin embargo se puede tomar en cuenta que el contenido subido a blogger es mejor indexado en los buscadores, a diferencia de cualquiera de estos otros sitios que ofrecen alojamiento gratuito.

Le envío un saludo cordial.

Atte. Wiwa

JMiur  

Lo lamento pero, yo no me enojo con nadie, siemplemente vuelvo a repetir lo mismo que dice la entrada porque parece crear confusión:

1. ¿Puede crearse una contraseña utilizando sólo JavaScript? NO, no se puede, o mejor dicho, se puede pero no sirve de nada ¿Porque los comentarios hablan de PHP? No sé porque hasta ahora, que yo sepa, son dos idiomas distintos ¿Puede crearse una contraseña usando PHP? Si, claro DEBE ser creada con PHP o con cualquier idioma del lado del servidor.

2. ¿En Blogger puede crearse una entrada privada en un blog público? NO, no puede hacerse con ningún idioma porque siempre será accesible de uno u otro modo.

Si el contenido subido a Blogger es mejor indexado que el alojado en otros sitios, cosa que es totalmente cierta ¿de que sirve ese beneficio si la entrada es privada? Por el contrario, de ser posible hacer semejante cosa, habría que evitar a toda costa que fuera indexada :D


Responder
Bonzu Pipinpadaloxicopolis III  

Vaya, es difícil convenserlos. Con algunos años leyéndole lo que más me asombra es su paciencia JMiur.

Ciertamente no le encuentro utilidad el limitar intencionalmente el contenido a los usuarios.

Pero bueno, recuerdo una condicional de los comentarios que detecta que uno esté logueado con su cuenta Google. No estoy seguro de si se puede, pero se me ocurre que, usándola en alguna parte, se le podría indicar a Blogger que únicamente genere el contenido para los usuarios registrados.

Espero no me regañe por el comentario señor JMiur.

JMiur  

Acá no hay ni enojos ni críticas, no uso ninguno de los dos métodos :D

Simplemente, no quiero agregar confusión a lo confuso y ser claro en el asunto. Luego, cada uno hará lo que quiera y está bien que así sea.

Si eso que sugieres de la cuenta de Google pudiera hacerse (creo que no porque ese es un dato del widget comments y por lo tanto no creo que sea posible usarlo) tampoco tendría mucho sentido o utilidad práctica.

Es mejor usar el viejo sistema: si no quieres que se vea algo, no lo pongas en internet porque acá dentro, lo privado es muy pero muy pero muy relativo.

Bonzu Pipinpadaloxicopolis III  

Totalmente de acuerdo :-)

Felipe Calvo  

Completamente de acuerdo contigo JMiur, basándonos en servicios gratuitos la forma mas sencilla de restringir acceso a cierto contenido en crear otro blog privado usando Blogger y si el número de usuarios con los "permisos" es muy elevado podría crearse un sitio en Google Sites con niveles de página restringidos y listo, por solo nombrar un par de opciones, hay muchas mas.

Agrego a la discusión que si es posible publicar contenido en un blog público de Blogger y que este contenido no sea indexado por los motores de búsqueda, para eso hay dos caminos

(1) desde la configuración del blog en las preferencias de búsqueda se debe habilitar la opción "Etiquetas de encabezado de robots personalizadas" con lo que luego a la hora de publicar entradas de blog (y mas adelante páginas) dentro de las opciones de la entrada aparezca el cuadro de configuración de "Etiquetas de robot personalizadas" y allí se marcan "noindex" y "nofollow" (podría ponerse también solamente "none" pero es mejor poner las anteriores).

(2) desde la configuración del blog en las preferencias de búsqueda habilitar el archivo robots.txt personalizado y allí explícitamente se introducen los URLs de las entradas/páginas que se quiere no sean indexadas.

Lo anterior desde luego no garantiza un 100% que nadie accidental o coincidencialmente llegue a la página o entrada en cuestión, pero desde luego es un gran acercamiento.

PD1: A la pregunta de Bonzu de detectar si el usuario ha iniciado sesión con su cuenta de Google hay un método no muy sofisticado pero sumamente funcional de hacerlo, en este tema puntual no se me ocurre ahora como articularlo, pero para muchos otros escenarios si que es funcional.

PD2: Hablando un poco del control de los blogs y de la velocidad de carga, ¿sabías que ya es posible deshabilitar totalmente la navbar?
Se debe ingresar a Diseño, hacer clic en "Editar" la navbar (verificar que se muestre en el layout) y marcar la opción "Off", justo al final luego de las opciones de asignar un color.

Un abrazo gigante Jorge.

JMiur  

Es verdad, Felipe, podría evitarse la indexación con esas opciones aunque, tal como dices, no es 100% seguro y además, seguirían en los feeds del blog. Entiendo que la lógica, cuando se habla de privacidad, contraseñas y todo eso es que el acceso sea imposible así que tampoco me convence mucho el sistema y me sigo quedando con lo simple, un blog privado :-)

El script que muestras es interesante, supongo que usa las cookies y entre los comentarios hay dudas respecto a si funciona correctamente o no pero, aunque funcionara bien, entiendo que de poco serviría ya que se requeriría algún tipo de sistema tipo oauth o cualquier otro para garantizar el login. No sé si podría ser usado para lo que consulta Bonzu, habría que verlo en detalle, en principio, lo dudo pero, nunca se sabe :D

No, no había visto eso de deshabilitar la navbar desde el gadget mismo y efectivamente, allí está: era hora :-D




Responder
Carlos  

Entiendo perfectamente el motivo y contenido del post, pero aporto una idea para utilizar únicamente JS para acceder a un recurso restringido: Cargar el contenido de una ruta que contenga un hash de la contraseña.

Si la contraseña es incorrecta el contenido que se intenta cargar no existe.

Por ejemplo, si se usa un hash SHA1, con la contraseña "entrar", el hash de la contraseña es: 2b5eed7c96c2d4daf9e7b8059c781a3c6dbfe48f

Si la ruta a nuestro recurso compartido contiene esa cadena, sólo se podrá acceder a él si se ha introducido correctamente "entrar".


JMiur  

Supongo que funcionaría aunque sigo pensando que si se trata de una entrada del mismo blog (que es a donde apunta todo este lio) será lo mismo, de una u otra forma, con más o menos esfuerzo, cualquiera podría acceder a esa entrada.

Si se trata de un recurso externo al blog de Blogger, entonces ya es otra historia y ahí sí, esa es una opción válida.

Responder
Miguel Ripoll Rueda  

Me interesa hacer una aportación al tema (aunque un poco tarde), la única manera para crear entradas privadas o contenidos bajo contraseña es la encriptación, y para ello hay ciertas librerías usando varios tipos de encriptación bastante útiles. Luego es cuestión de ingenio para hacer que los contenidos encriptados se desencripten y aparezcan usando alguna palabra clave del contenido encriptado. Esta es la única solución, como dice JMiur, es imposible si el contenido es legible en el código de fuente.

Responder

¿Quiere dejar un comentario?

recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...

Todos los archivos y demos alojados en Fileden han sido redireccionados y deberían estar funcionando correctamente.
De todos modos, también puede accederse a ellos a través de SkyDrive

Nota: sólo los miembros de este blog pueden publicar comentarios.

Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.

Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...

 
CERRAR