2009-10-27 8 views
5

Tengo un proyecto para crear un programa que impide al usuario escapar de un programa GUI. El programa está diseñado para que los estudiantes realicen exámenes. El programa contiene una página de navegador web.Jailing user to GUI program in linux

Miré alrededor y pregunté en diferentes lugares cómo debería hacer esto, y me recomendaron Qt. Ahora estoy teniendo dudas al respecto ...

Estoy usando ubuntu 9.04 64 bits.

¿Cuál cree que es la mejor solución para encarcelar a los usuarios en los programas de GUI?

Respuesta

7

Primero que todo, vea this answer.

La mejor manera de evitar que los usuarios usen cualquier otra cosa es usar full-screen mode y no iniciar un gestor de ventanas. Así que simplemente inicie X y luego su aplicación y nada más.

[EDIT] Algunas cosas que usted debe tener cuidado de:

  • Desactivar la conmutación de la consola de texto (por lo general Ctrl - Alt - F1 .. F10)
  • Eliminando el servidor X (Ctrl - Alt - Retroceso)
  • Magic Keys (Alt - Pet Sis -...)

Como se puede ver, esto puede llegar a ser arbitrariamente compleja. Por lo tanto, sugiero cerrar algunos de los agujeros y dejar que los hackers pierdan su tiempo en los otros. Si quieren pasar su tiempo pirateando la computadora en lugar de la prueba, está bien.

+0

Buen comienzo, sin embargo, esto requiere mucho más esfuerzo del que puede anticipar. Podría hacer Ctrl-F1, iniciar sesión en la consola e iniciar un segundo servidor X. Y así. –

+3

Sí. Pero estás en el reloj. Entonces, si quieres pasar media hora para hackear la computadora, vas a fallar. –

2

Lo primero que debe hacer es disable the Ctrl-Alt-Backspace key combination para evitar que los molestos usuarios apaguen su servidor X.

Cuando se trata de qué escribir, creo que la idea de tus amigos de Qt es buena, probablemente puedas escribir todo el programa en algo del orden de 50 líneas. Si todo lo que te interesa son los botones "Inicio", "Atrás" y "Adelante", puedes crear una barra de herramientas simple y usar el widget QWebView para ver tu sitio web. Esto evitaría que el usuario vaya a ninguna parte ya que no tendrían una barra de direcciones, y aún podrían tomar su prueba.

Si desea utilizar un motor que no sea WebKit, probablemente terminará con mucho más trabajo, y WebKit debería funcionar en la mayoría de los sitios web de todos modos.

+0

+1 para deshabilitar CA-BS –

+2

No solo lo desactivaría, agregaría un mensaje aterrador. – patros

+2

Estoy de acuerdo con patros. Si registra todos los intentos de "pirateo" de los examinandos con los resultados de la prueba, y les da un mensaje a ese efecto, los disuadirá de intentarlo, porque si no piratean la máquina y cubren adecuadamente sus pistas, habrá ser evidencia de que hicieron trampa. – rmeador

0

Creo que la mejor solución son los supervisores y la grabación de video o el registro del sistema para un uso inaceptable (por ejemplo, instantáneas de listas de procesos).

¿Cuál es su plan para evitar que las personas traigan materiales? O consulte su iPhone durante el examen? ¿O preguntando a sus vecinos? No necesita tecnología para resolver un problema de política.

+0

Si puede resolver parte de su problema de política con la tecnología, puede hacer un mejor uso de su tiempo aplicando el resto del problema de política. –

4

¿Qué estás tratando de evitar?

Supongo que lo principal es una restricción para garantizar que no busquen las respuestas en Google.

Como un enfoque alternativo completamente diferente: Criple la pila de la red hasta el punto que pueda (solo) llegar al servidor o servidores requeridos.

Esto se puede hacer con unos pocos (relativamente eficaces) y simples ajustes:

  • ninguna puerta de enlace predeterminada, sólo una puerta de entrada para la subred en la que se encuentra el servidor examen.
  • No hay servidores DNS en absoluto, solo un archivo de hosts fijo (O un servidor DNS de examen que solo contiene los servidores de exámenes).

Estas configuraciones se pueden lograr sintonizando el servidor DHCP. Esto hace que sea fácil 'criple/uncriple' toda una sala de entrenamiento con una configuración y un reinicio de todos los sistemas.

+0

Si desea protegerse contra Google, simplemente desenchufe el cable de red (y asegúrese de que no haya wifi instalado). Y necesita confiscar teléfonos inteligentes de todos modos ... – cmaster