jueves, 22 de abril de 2010

Web's fantasma

Era un concepto que me gusto, la verdad es que ni siquiera era idea mia, sino que la saque de # Freesoftwareando in the night, la idea era dejar ahí el zip... pero como cerraron el post, pues lo dejo aqui.

Lo que entendi grosso modo (seguramente estaria explicado exactamente lo contrario, pero se hace lo que se puede  ), era que estaria bien tener paginas web que una vez se visitaran, al volver no hubiera nada, por aquello de que alguien viendo de donde venia la gente por los Refereer acabaria estrellandose con un 404, bien, lo que pude programar es esto [multiplexor.zip], (hay que ajustar algunos parametros en options.php)

Y basicamente lo que hace es que al navegar dentro de la pagina (para empezar hay que navegar al archivo getticket.php) todas las direcciones son "virtuales", si alguien las ve y intenta visistarlas se encontrara con el conocido 404 Not Found, en la practica lo que hace es cifrar con ARC4 el nombre del archivo de la url usando como contraseña el id de session, y que al descifrar si no encuentra nada, envie un 404.

Obviamente no todo son ventajas (acaso tiene alguna utilidad real? ), el script PHP hace una peticion al servidor por cada una que le hace a el (siendo a localhost no deberia haber gran problema, pero es algo a tener en cuenta), ademas el problema de la implementacion es que seguramente funcione mal en paginas con Ajax, y no se tomo en cuenta la posibilidad de usarlo con formularios (es una Prueba de concepto, no habia ganas de implementar un parser html completo y demas )

ps: Perdon desde ya por el ultimo trozo de codigo, me quedo bastante... poco pythonico

ps2: Para quien no quiera bajarse todo el zip, tiene la implementacion de ARC4 en php, en un zip separado

Eso es todo, hasta la proxima!

5 comentarios:

  1. :(, imposible postear un comentario, todo me da error.
    Me voy a darle a la bicicleta, espero que al regresar tenga más paciencia.

    Entrará este comentario?, ...

    ResponderEliminar
  2. Pues ya es extraño, ni hay moderacion, ni deberia pedir verificacion :(

    ResponderEliminar
  3. Quizas por que meti "code" con urls pero ... en fin, era un error de blogger.

    La idea es más o menos como relatas salvo que utilizando algún recurso externo no predecible como podria ser el numero de caracteres del shakeit del meneame:
    mostrar id

    La idea es que caduque una vez se ha usado pero que por ejemplo en c, phyton, bash shell, phpcli, ... el visitante ejecute un comando del tipo:

    sh zonaadmin.sh

    Ese script podria conseguir el numero de caracteres y lineas de una web determinada en el momento de ser ejecutado (una web cambiante como el shakeit de meneame esta bien) y ejecutar un calculo con esos datos que nadie puede predecir.

    El servidor hace lo mismo y siempre esta esperando en alguna url del tipo:

    http://dasfas.com/index.php?=sadfdsf4das34f1ds65f6dasf1das3f1das3f1das5fdas156f4as65df4as

    Por ejemplo.

    El server cada x tiempo hace lo mismo que haces tu en tu equipo (o lo puede hacer solo cuando le hacen una petición) pero en ningún momento la información se envia a ningún sitio y es solo en el momento en el que el usuario visita la web (el script lanza firefox url generada en ese momento) cuando en un log podria quedar registrada esa dirección.

    Como el usuario ya ha visitado esa web desde una url que ha viajado (cifrada o sin cifrar) esta automaticamente fuerza el cambio o no permite ya durante dias el acceso desde una urlid igual.

    Si alguien esta logeando nuestro acceso (el propio server donde tengamos alojado) puede ver esas peticiones raras pero al seguirlas se encuentra un 404.
    Si trata de buscarle razón o sentido puede tirarse toda la vida por que quien es capaz de deducir (ademas tendria que saber) que el shakeit de meneame va a tener x lineas en un momento dado y que estas van a contener un total de x caracteres.

    Incluso si eso no es suficiente podriamos jugar con la hora, el id de session, ...

    No importa si la url queda cifrada o si muestra directamente el id (mejor cifrarlo de todos modos) la idea es que los administradores de sistemas se queden locos al seguir el rastro en los proxys.

    La idea en realidad clara clara no la tengo pero en resumidas cuentas es como dices una web fantasma que teniendo la gente los scripts, binarios o lo que sea pertinentes podrian acceder en todo momento simplemente tecleando: acceder

    En ese momento entrarian por una url que deja de existir en el momento de su uso.

    Esto podria ir a más y se podria generar todo un website coherente para un usuario legitimo pero de dificil acceso por ser tan cambiante.

    Problemas?.

    Confiar en una sola url es poco, uno puede conseguir mayor aletoriedad confiando en una lista de urls o usando los comentarios de enrique dans en twitter e incluso no se, ... todo esto puede hacerse y creo que ofrece una mayor seguridad a determinadas zonas de formularios para administración de websites.

    (menudo toston estoy soltando).

    Termino diciendo que me ha molado el codigo y que si me da por implementar algo asi en una web que estoy realizando (para una empresa) comentare el sistema y pondre tu codigo si no te importa.

    Saludos.

    ResponderEliminar
  4. el codigo: http://freesoftwareando.com/proyectos/websquemueren2/2.zip

    ResponderEliminar
  5. Se agradece la explicacion, quedo bastante claro

    Y haz lo que quieras con el codigo, para eso esta :)

    ResponderEliminar