2009-10-27 3 views
5

У меня есть проект для создания программы, которая не позволяет пользователю ускользнуть от программы GUI. Программа предназначена для студентов, сдающих экзамены. Программа содержит страницу веб-браузера.Заключение пользователя на программу GUI в linux

Я осмотрелся и спросил в разных местах, как я должен это делать, и мне рекомендовали Qt. Теперь у меня есть другие мысли об этом ...

Я использую ubuntu 9.04 64 бит.

Как вы считаете, что лучше всего подходит для тюремщиков пользователей в программах GUI?

ответ

7

Прежде всего, см. this answer.

Лучший способ предотвратить использование пользователями чего-либо другого - использовать full-screen mode и не запускать оконный менеджер вообще. Так что просто запустите X, а затем ваше приложение и ничего больше.

[EDIT] Некоторые вещи, которые вы должны заботиться о:

  • Отключить переключение в текстовую консоль (обычно Ctrl - Alt - F1 .. F10)
  • Убийство сервера X (Ctrl - Alt - Backspace)
  • Волшебные клавиши (Alt - SysRq -...)

Как вы видите, это может стать сколь угодно сложным. Поэтому я предлагаю закрыть некоторые отверстия и позволить хакерам тратить время на другие. Если они хотят тратить свое время на взлом компьютера вместо теста, все в порядке.

+0

Хорошее начало, как бы это ни было, требуется гораздо больше усилий, чем вы можете ожидать. Я мог бы сделать Ctrl-F1, войти в консоль и запустить второй X-сервер. И так далее. –

+3

Да. Но вы на часах. Поэтому, если вы хотите потратить полчаса на взлом компьютера, вы потерпите неудачу. –

2

Первое, что вам нужно сделать, это disable the Ctrl-Alt-Backspace key combination, чтобы пользователи отвязали ваш сервер X.

Когда дело доходит до того, что записать его, я думаю, что ваша идея друзей Qt хорошая, вы, вероятно, можете написать всю программу в чем-то порядка 50 строк. Если все, о чем вы заботитесь, это кнопки «Главная», «Назад» и «Вперед», вы можете создать простую панель инструментов и использовать виджет QWebView для фактического просмотра в Интернете. Это помешает пользователю идти куда угодно, поскольку у них не будет адресной строки, и они все равно смогут пройти тест.

Если вы хотите использовать движок, отличный от WebKit, вы, скорее всего, получите гораздо больше работы, и WebKit должен работать на большинстве веб-сайтов в любом случае.

+0

+1 для отключения CA-BS –

+2

Я бы не просто отключил его, я бы добавил страшное сообщение. – patros

+2

Я согласен с patros. Если вы зарегистрируете все попытки «взлома» тестировщиков с результатами теста и дадите им сообщение на этот счет, это отговорит их от попыток, потому что, если они не смогут взломать машину и должным образом покрыть их следы, быть доказательством того, что они обманули. – rmeador

0

Я думаю, что лучшим решением является проректор и видеозапись или системный журнал для неприемлемого использования (например, моментальные снимки процесса).

Каков ваш план, чтобы люди не приносили материалы? Или проконсультируйтесь со своим iPhone во время экзамена? Или спрашивать своих соседей? Вам не нужны технологии для решения проблемы политики.

+0

Если вы можете решить часть своей проблемы с технологией, то вы можете лучше использовать свое время, чтобы обеспечить остальную часть проблемы с политикой. –

4

Что вы пытаетесь предотвратить?

Я предполагаю, что главное - это ограничение, чтобы гарантировать, что они не отвечают на вопросы Google.

Как совершенно другой альтернативный подход: соедините сетевой стек до такой степени, чтобы он мог (только) достичь только необходимого сервера (ов).

Это можно сделать с помощью нескольких (относительно эффективных) и простые настройки:

  • шлюз по умолчанию Нет, только шлюз для подсети, в которой находится сервер экзамен.
  • Нет DNS-серверов вообще, только файл с фиксированными хостами (или DNS-сервер экзамена, содержащий только серверы экзаменов).

Эти настройки могут быть достигнуты даже при настройке DHCP-сервера. Это упрощает «сбор/разборку» всей учебной комнаты с настройкой и перезагрузкой всех систем.

+0

Если вы хотите защитить от поиска, просто отсоедините сетевой кабель (и убедитесь, что Wi-Fi не установлен). И вам все равно нужно конфисковать смартфоны ... – cmaster

Смежные вопросы