Автор: Пользователь скрыл имя, 13 Ноября 2011 в 11:24, дипломная работа
В настоящее время использование компьютера во всех сферах деятельности человека привело к необходимости создания программных продуктов для решения поставленных задач. С помощью компьютера можно выполнять наиболее трудоемкие операции, выполнение которых непосредственно вручную занимает долгое время.
С развитием информационных технологий возникла необходимость внедрения компьютера не только в профессиональную область деятельности человека, но и в учебный процесс. Компьютер позволил людям облегчить работу с однотипной документацией, требующей одинакового оформления.
Введение
1 Анализ технического задания и возможные способы реализации поставленной задачи
2 Выбор инструментальных программных средств для решения поставленной задачи
3 Выбор аппаратных средств
4 Описание программы
5 Методика работы пользователя с программой
6 Экспериментальная часть
7 Защита данных
8 Организационно-экономическая часть
9 Санитарные нормы и правила при работе с ПЭВМ
Заключение
Литература
Приложение
7 Защита данных
При разработке программного продукта необходимо было учесть возможность защиты данных от несанкционированного доступа.
Защита программного продукта необходима для исключения возможности просмотра как самих вопросов, так и результатов тестирования.
При этом доступ ко всем функциям программы тестирования получает только тот пользователь, который знает пароль доступа.
Защите подвергается только серверная часть программного продукта, так как доступ ко всем данным осуществляется именно из серверной части.
Как уже описывалось в пункте «4.1 Описание серверной части» данного дипломного проекта, при активации главной формы приложения появляется окно для ввода пароля. Для ввода пароля используется функция InputBox, котороая отображает диалоговое окно для ввода строки текста. Окно выводится в центре экрана и содержит поле ввода с надписью, а также кнопки OK и Cancel.
Вид окна для ввода пароля, используемого в программе тестирования, приведен на рисунке 7.1.
Рисунок 7.1 – Окно ввода пароля при запуске программного продукта
Каждый вводимый в это окошко символ скрывается от пользователя символом *. Это необходимо для того, чтобы скрыть от посторонних лиц вводимый пароль. Так как сама функция InputBox не имеет возможности скрытия вводимых символов знаком *, то при реализации этой функции в серверной части использовалась следующая процедура:
const InputBoxMessage = WM_USER+200; //объявление константы – сообщение Windows при создании InputBox
//процедура скрытия символов
procedure
TForm_Main.
var hInputForm, hEdit, hButton: HWND; //переменные компонентов окна ввода пароля
begin
hInputForm := Screen.Forms[0].Handle; //определение формы приложения
if hInputForm <> 0 then //форма найдена
begin
hEdit := FindWindowEx(hInputForm, 0, 'TEdit', nil); //поле ввода
hButton := FindWindowEx(hInputForm, 0,' TButton', nil); //кнопки
SendMessage(hEdit, EM_SETPASSWORDCHAR, Ord('*'), 0); //установка символа * как символа ввода пароля
SendMessage(hButton, WM_SETTEXT, 0, Integer(PChar('Отмена'))); //кнопка
end; end;
//вызов процедуры из главного потока приложения
PostMessage(Handle,
InputPass := InputBox('Запуск приложения', 'Введите пароль для начала работы сервера программы тестирования:', ''); //создание окна ввода пароля (рисунок 7.1)
Таким образом, вводимые пользователем символы скрываются от посторонних лиц символом *.
Надо заметить, что при вводе пароля необходимо быть внимательным – при вводе ошибочного пароля приложение автоматически закрывается, а подключенные клиенты не смогут продолжать работу из-за отсутствия соединения с сервером.
Для повышения надежности использования парольной защиты в программе тестирования используется шифрование и дешифрование используемого пароля. Сам пароль хранится в таблице PAROL базы тестирования. Эту таблицу с помощью средств взлома информации злоумышленник может просмотреть. Поэтому нецелесообразно хранить и использовать пароль в его первозданном виде.
Создаваемый пароль в первую очередь шифруется и только потом записывается в базу тестирования.
Процедура шифрования пароля выглядит следующим образом:
const
ConstString='
procedure
TForm_Main.nChangePassClick(
var Pass1, Pass2: string; //переменные нового и зашифрованного пароля
begin
PostMessage(Handle, InputBoxMessage, 0,0); //скрытие вводимого пароля
Pass1 := InputBox('Смена пароля', 'Введите новый пароль для изменения:', ''); //создание поля ввода нового пароля
// ШИФРОВАНИЕ ПАРОЛЯ И ЗАПИСЬ ЕГО В БАЗУ ТЕСТИРОВАНИЯ
Randomize; //исключение повтора выпадения случайных значений
For i := 1 To Length(Pass1) Do //цикл от 1 до длины введенного пароля
Pass2 := Pass2 + Copy(Pass1, i, 1) + ConstString [Random(Length(ConstString))] + ConstString [Random(Length(ConstString))]; //создание пароля
DM.ibtParol.Edit; DM.ibtParolPAROL.Text:=Pass2; //запись пароля
DM.ibtParol.Post; //принятие изменений
Зашифрованный пароль создается следующим образом – из введенного нового пароля в цикле копируется один символ (Copy(Pass1, i, 1)), к этому символу прибавляется еще два символа, которые случайным образом извлекаются из постоянной строки ConstString.
Пример шифрования пароля:
Введенный пароль – привет.
Зашифрованный пароль – п mж р va и Хх в Тg е чЩ т Рм.
Символы введенного пароля выделены рамкой.
Процедура расшифровки пароля выглядит подобным образом:
i := 1; //переменная номера копируемого символа
ExistPass
:= Copy(DM.ibtParolPAROL.
Repeat //цикл
i := i + 3; //номер копируемого символа увеличивается на 3
ExistPass
:= ExistPass + Copy(DM.ibtParolPAROL.
Until i >= Length(DM.ibtParolPAROL.Text); //выход из цикла
If InputPass <> ExistPass Then Close; //пароли не совпадают – выход из программы
Расшифровка пароля происходит следующим образом: переменной InputPass присваивается введенный пароль, переменной ExistPass – пароль, записанный в базе тестирования. В цикле Repeat/Until происходит копирование каждого третьего символа из имеющегося пароля – происходит формирование первоначального пароля. Затем сравниваются введенный и имеющийся пароли – если они не совпадают, то приложение закрывается.
Таким образом, в разработанном программном продукте производится защита данных от несанкционированного доступа. Использование парольной и криптографической защиты позволяет ограничить доступ к функциям программного продукта.
Клиентская часть не нуждается в парольной защите, так как из нее нет доступа к редактированию данных базы тестирования.
Информация о работе Сетевая программа тестирования по дисциплинам