Cómo evitar la omisión de la ventana de acuerdo del usuario

0

Tengo un archivo en mi sitio web que los usuarios pueden descargar. Después de hacer clic en el botón de descarga, muestro un div con acuerdos de usuario y dos botones, "aceptar acuerdo de usuario" y "rechazar acuerdo de usuario".

Si el usuario presiona "aceptar acuerdo de usuario", agrego el parámetro GET &useragreement=1 a la URL de descarga, de lo contrario, &useragreement=0 .

Luego, en el lado del servidor, compruebo si useragreement == 1 y si es verdadero, inicie la descarga; de lo contrario, inicie una recarga de la página.

Sin embargo, un usuario podría simplemente manipular la url y agregar &useragreement=1 para descargar un archivo sin siquiera leer los acuerdos de usuario.

Preguntas

A: ¿Se considera un delito cibernético (pirateo) eludir la ventana de acuerdo de usuario de esta manera?

B: ¿Cómo puedo mejorarlo?

    
pregunta Black 15.12.2016 - 11:20
fuente

2 respuestas

3

Si esto es o no un delito cibernético depende de la jurisdicción en la que usted y ellos se encuentren, e incluso entonces es un tema para ley stackexchange . Así que no voy a hablar de eso.

Si desea asegurarse de que solo los usuarios que al menos vieron el acuerdo de usuario pueden descargar un archivo, deben proporcionarles un secreto (junto con su navegador web) junto con el acuerdo de licencia.

La página de acuerdo de usuario no establece un token 0/1 simple.

  • Cuando genera la página de acuerdo de usuario en el servidor, genere aleatoriamente un token único para cada impresión de página. Coloque ese token en un campo de entrada oculto en la página de acuerdo y almacénelo en su base de datos.
  • Haga que el botón de envío debajo del acuerdo también envíe ese token
  • Haga que la página de descarga verifique si el token está en la base de datos. Si es así, permita la descarga y elimine el token de la base de datos para que no pueda volver a utilizarse.
  • (opcional) elimine los tokens de su base de datos que no se usaron dentro de X horas para evitar que su forma de base de datos se vuelva demasiado grande y lenta debido a los tokens no utilizados que se acumulan en ella.

Por cierto, esto también es una buena precaución contra el robo de ancho de banda, porque los enlaces profundos directamente en tus descargas no funcionarán. Cualquier persona que enlace a los archivos en su sitio web tendrá que vincular al menos a la página del acuerdo.

    
respondido por el Philipp 15.12.2016 - 11:30
fuente
2
  

A: ¿Se considera un delito cibernético (pirateo) eludir la ventana de acuerdo de usuario de esta manera?

Esa es una pregunta legal y fuera de tema. Pruebe law.stackexchange.com en su lugar. Pero dudo mucho que esto se considere un delito cibernético en la mayoría de los países.

  

B: ¿Cómo puedo mejorarlo?

Asegúrese de que la solicitud que contiene useragreement=1 sea emitida por el mismo sitio y que la URL de referencia tenga useragreement=0 . Puede comprobar el encabezado de HTTP Referer para esto. De esta manera, al menos se podría argumentar que el usuario omitió el acuerdo a sabiendas (es decir, en lugar de seguir un enlace publicado por otra persona) y, según la legislación local, esto puede interpretarse como si el usuario en este caso aún estuviera vinculado al acuerdo de todos modos. Pero una vez más, las discusiones legales o fuera de tema aquí, pero puede preguntar en law.stackexchange.com si este bloqueo técnico es suficiente.

    
respondido por el Steffen Ullrich 15.12.2016 - 11:30
fuente

Lea otras preguntas en las etiquetas