Разработка системы управления работой коммерческой компании

BuhName : String[30]; { ФИО бухгалтера}

GenName : String[30]; { ФИО коммерческого директора}

UserName : String[30]; { ФИО пользователя}

Signature : String[10]; { Сюда пишется дата BIOS'а }

Reserved1 : String[10]; { }

Reserved2 : String[10]; {Зарезервировано }

Reserved3 : String[20]; { }

Password : String[10]; {Пароль}

FirmName : String[60]; {Реквизиты фирмы}

Kurs : Real; {Курс доллара}

end;

При начальном запуске пароль не установлен. При необходимости из меню УСТАНОВКИ-ПАРОЛЬ можно установить пароль. Опишу реальзацию подпрограмму для его установки. Создается диалоговое окно со строкой ввода. Для того, чтобы привводе пароля на экране не отображались вводимые символы, был перекрыт метод TInputLine.HandelEvent так, что бы каждый введенный символ помещался в отдельную строку, а отображался ‘*’ (звездочкой). Для детального просмотра алгоритма см. модуль PASSWORD.PAS. После введения пароля и нажатия на кнопку OK появляется диалоговое окно для проверки введенного пароля. Если оба введеных пароля совпадают, то он записывается в файл FIRMA.DAT в поле Password. Если они не совпадают, то пароль не устанавливается.

Анологично реализованы подпрограммы для ввода реквизитов и курса доллара.


2.6.4.8. ПАРОЛИРОВАНИЕ.


Для того, чтобы предотвратить доступ к данным я решил создать пароль, который запрашивался бы каждый раз при запуске программы. Для этого в записи ConfigFileStructure и добавил поле PassWord типа String[10];


Type

ConfigFileStructure = record

....

Password : String[10];

....

End;


Затем в меню УСТАНОВКИ добавил подменю УСТАНОВКИ-ПАРОЛЬ и связал

с ним комманду cmDostup, которая вызывает процедуру ввода пароля Dostup

из модуля SETUP.PAS. Эта процедура реализована так: На экране появляется

диалоговое окно со строкой ввода :

Введите пароль . В ней вводится пароль и при нажатии на кнопку OK

появляется следующее окно для проверки введенного пароля. Если во втором

окне введенный пароль соответствует введенному паролю в первом окне, то

этот пароль кодируется и записывается в файл FIRMA.DAT. Кодирование

происходит следующим образом. Каждый символ пароля умножается на число

(58+номер символа)*2. При запуске программы появляется диалоговое окно со

сторокой ввода Введите пароль . Если введенный пароль в закодированном

виде соответствует установленному закодированному паролю, то программа

продолжает функционировать , а если не соответсвуют, то выводится

сообщение о не правильно введенном пароле и программа прекращает

функционировать.


2.6.4.9. СТРУКТУРА БАЗ ДАННЫХ (БД).


Теперь рассмотрю структуру баз данных. Структура не является сложной, однако

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

Основной БД является БД, которая содержит информацию о наименованиях, имеющихся на складе (о количестве, о стоимости и т.д.). Она имеет следующую структуру :


Type

DataType = record { Структура складских данных}

ProductNumber : String[5]; {Номер}

ProductName : String[22]; {Наименование}

ProductRasf : String[10]; {Расфасовка}

PieceInBox : String[5]; {Кол-во штук в упаковке}

ProductPrice : String[12]; { Себестоимость }

ProductKol : String[12]; {Поставленное количество}

ProductFirm : String[22]; {Фирма поставщик}

ProductDate : String[l10]; {Дата прихода}

ProductOST : String[12]; {Осталось на складе}

ProductKurs : Real; { Курс прихода }

ProductSellPrice : Real; { Стоимость }

ProductVozvrat : LongInt; {Возврат}

end;


Var

Data : DataType;

DataFile : File of DataType; {Файл SKLAD.001}


Для записи (считывания) данных в (из) нее используется следующий алгоритм:

  1. Открыть файл данных.

  2. Поместить указатель положения в файле на нужную запись.

  3. Для записи данных - каждому полю записи Data присвоить соответствующие данные, затем их записать в файл данных Write(DataFile,Data). Для считывания данных - Считать данные из файла Read(DataFile,Data);

  4. Закрыть файл данных.


Более интересной структурой является структура сделок. :


Type {Заголовок сделки}

SdelkaInfo = record

SdelkaNumber : LongInt; {Номер сделки }

Reserved : Word;

Archive : Boolean; {Флаг архива}

ItemIndex : LongInt; {Индекс в наименованиях}

ItemsTaken : LongInt; {Всего наименований}

FirmName : String[22]; {Фирма}

Date : String[10]; {Дата выписки накладной}

OplataDate : String[10]; {Дата полной оплаты}

Summa : Real; {Сумма}

Kurs : Real; {Курс доллара}

SummaSkidka : Real; {Сумма со скидкой}

Oplata : Boolean; {TRUE - если оплачено полностью}

End;


Type

OneItemInfo = record { Наименования}

Number : LongInt;

SdelkaNumber : LongInt;

SklNum : LongInt;

Name : String[22];

Rasf : String[10];

Box : Integer;

KolVo : LongInt;

SBPrice : Real;

Price : Real;

Vozvrat : LongInt;

End;

Var

Sdelka : SdelkaInfo;

SdelkaFile : File of SdelkaInfo; {Файл SDELKA.001}

Item : OneitemInfo;

ItemsFile : File of OneItemInfo; {Файл SDELKA.002}


Структура состоит из заголовка и собстенно наименований. В заголовке содержатся следующие данные : Фирма покупатель, Дата накладной, Дата оплаты, Сумма накладной в долларах США , Сумма накладной со скидкой (в рублях), Курс доллара на момент ваписки накладной, Флаг архива, Количество проданных наименований, Индекс в БД с наименованиями.

В БД наименований находится информация о каждом наименовании, относящегося к соответствующей сделки.

Например, если нужно считать сделку, то надо:

  1. Открыть файлы данных SdelkaFile и ItemsFile;;

  2. Поместить указатель на нужную сделку в файле SdelkaFile (Seek(SdelkaFile,n));

  3. Считать сделку из файла (Read(SdelkaFile,Sdelka);

  4. Поместить указтель на наименование, численно равный Sdelka.ItemIndex в файл ItemsFile и для каждого наименования (от Sdelka.ItemsIndex до Sdelka.ItemsIndex+Sdelka.ItemsTaken) считывать данные. (Read(ItemsFile,Item);

  5. Закрыть файлы данных SdelkaFile и ItemsFile;


На Borland Pascal это выглядит следующим образом:

OpenSdelkaFile;

OpenItemsFile; {Открытие файлов: процедуры находятся в модуле SKLFILES.PAS}

Seek(SdelkaFile,нужная сделка); {Указываю на нужную сделку}

Read(SdelkaFile,Sdelka); {и считываю ее заголовок}

for n:=Sdelka.ItemIndex to Sdelka.ItemsTaken do {Считывание инф-ции о наименованиях}

Begin

Seek(ItemsFile,n);

Read(ItemsFile,Items);

...... операции над считанными данными (вставка в коллекцию строк) .....

End;

CloseItemsFile;

CloseSdelkaFile {Закратие файлов};


Структура приходов описана также , как и структура сделок.


2.6.5. ЗАКЛЮЧЕНИЕ


Используя мощные возможности компилятора BORLAND PASCAL 7.0 и объектно-ориентированной библиотеки TURBO VISION для написания системы управления работой коммерческой компании мне удалось за очень сжатые сроки создать довольно гибкую программу с пользовательским интерфейсом очень высокого класса.


2.7 Безопасность информации в ЛВС


2.7.1. Общая характеристика угроз, служб и механизмов безопасности


Комплексное рассмотрение вопросов обеспечения безопасности ЛВС нашло свое отражение в так называемой архитектуре безопасности, в рамках которой различают угрозы безопасности, а также услуги (службы) и механизмы ее обеспечения.

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

Угрозы принято делить на случайные, или непреднамеренные, и умышленные. Источником первых могут быть ошибки в программном обеспечении, выходы из строя аппаратных средств, неправильные действия пользователей или администрации ЛВС и т.д.. Умышленные угрозы, в отличие от случайных, преследуют цель нанесения ущерба пользователям (абонентам) ЛВС и, в свою очередь подразделяются на активные и пассивные.

Пассивные угрозы, как правило, направлены на несанкционированное использование информационных ресурсов ЛВС, не оказывая при этом влияния на ее функционирование. Пассивной угрозой является, например, попытка получения информации, циркулирующей в каналах передачи данной ЛВС, посредством прослушивания последних.

Активные угрозы имеют целью нарушение нормального функционирования ЛВС посредством целенаправленного воздействия на ее аппаратные программные и информационные ресурсы. К активным угрозам относятся, например, разрушение или радиоэлектронное подавление линий связи ЛВС, выход из строя ЭВМ или ее операционной системы, искажение сведений в пользовательских базах данных или системной информации ЛВС и т.п.. Источниками активных угроз могут быть непосредственные действия злоумышленников, программные вирусы и т.п..

К основным угрозам безопасности относятся: раскрытие конфиденциальной информации, компрометация информации, несанкционированное использование ресурсов ЛВС, ошибочное использование ресурсов ЛВС, несанкционированный обмен информацией, отказ от информации, отказ в обслуживании.

Средствами реализации угрозы раскрытия конфиденциальной информации могут быть несанкционированный доступ к базам данных, упоминавшееся выше прослушивание каналов ЛВС и т.п.. В любом случае, получение информации, являющейся достоянием некоторого лица (группы лиц), другими лицами, наносит ее владельцам существенный ущерб.

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

Несанкционированное использование ресурсов ЛВС, с одной стороны, является средством раскрытия или компромитации информации, а с другой — имеет самостоятельное значение, поскольку, даже не касаясь пользовательской или системной информации, может нанести определенный ущерб абонентам или администрации ЛВС. Этот ущерб может варьироваться в весьма широких пределах — от сокращения поступления финансовых средств, взимаемых за предоставление ресурсов ЛВС, до полного выхода сети из строя.

Ошибочное использование ресурсов ЛВС, будучи санкционированным, тем не менее, может привести к разрушению, раскрытию или компрометации указанных ресурсов. Данная угрозачаще всего является следствием ошибок, имеющихся в программном обеспечении ЛВС.

Несанкционированный обмен информацией между абонентами ЛВС может привести к получению одним из них сведений, доступ к которым ему запрещен, что по своим последствиям равносильно раскрытию информации.

Отказ от информации состоит в непризнании получателем или отправителем этой информации, фактов ее получения или отправки соответственно. Это, в частности, помогает одной из


29-04-2015, 03:45


Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Разделы сайта