Jailing пользователя для программы с графическим интерфейсом в Linux - PullRequest
5 голосов
/ 27 октября 2009

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

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

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

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

Ответы [ 4 ]

7 голосов
/ 27 октября 2009

Прежде всего, смотрите этот ответ .

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

[ПРАВИТЬ] Некоторые вещи, о которых вы должны позаботиться:

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

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

4 голосов
/ 27 октября 2009

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

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

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

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

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

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

2 голосов
/ 27 октября 2009

Первое, что вы захотите сделать, - это отключить комбинацию клавиш Ctrl-Alt-Backspace , чтобы не дать противным пользователям отключить ваш X-сервер.

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

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

0 голосов
/ 27 октября 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...