Запуск програми через форму авторизації, MS Office, Програмні керівництва, статті

У цій статті розглянемо один із способів захисту програми Access. Мова піде про вхід в базу через введення пароля, або кажучи інакше – авторизація. В Access передбачена можливість задати пароль на базу даних: Сервіс – Захист – Поставити пароль бази даних. Однак сам пароль зберігається в системному реєстрі в незашифрованому вигляді, і щоб відкрити таку захищену базу, достатньо лише зайти в реєстр і прочитати його. Ми ж спробуємо створити аналогічний інтерфейс, але вже із зашифрованим паролем, причому зробимо так, щоб при спробі відкрити форму, якщо користувачеві вдалося увійти в базу, минаючи стартову форму авторизації, база аварійно закривалася.


Для цього нам знадобиться у службовій таблиці, наприклад tAdminCop, Завести поле Password, В якому будемо зберігати пароль, а так же модуль шифрування пароля – AdminPassword.


Схема авторизації наступна:



При старті програми запускається форма авторизації formAdmPassword, в якій вводимо пароль


Пароль зчитується, шифрується і порівнюється із зашифрованим паролем в поле таблиці tAdminCop


Якщо паролі збігаються, то відкривається стартова форма програми, якщо ні – вихід з програми.


У модулі Constants задана константа логічного типу. При правильному паролі вона приймає значення True, при помилковому (за замовчуванням) – відповідно False. В подія форми frmStart є така процедура:


     Private Sub Form_Open(Cancel As Integer)
          If flgEnabled = False Then
               DoCmd.Quit acPrompt
          End If
     End Sub


Як видно, якщо flgEnabled = False, то, отже, вихід з програми. Таким чином, і робиться неможливість відкриття форми без введення пароля. Якщо аналогічні процедури повісити на інші форми, звіти, то єдиною лазівкою для “ворогів” залишаться тільки таблиці, у яких, на жаль, немає жодних подій, які можна б було перехопити. Єдиним захистом для них буде приховання вікна додатка і установка захисту від Shift.
Очевидно, що така авторизація ефективна лише в тому випадку, коли “ворогам” немає ходу до вихідного коду модулів, іншими словами база перетворена у формат. Mde. Взагалі, основа будь захисту додатків Access – Це. Mde формат. Дійсно, здумай Ви захищати подібним чином. Mdb, будь-хто міг би просто відкрити модуль Constants і прописати там


     Public Const flgEnabled = True


І все, ніякого захисту.


Захист шифруванням пароля буде залежати від складності шифрування. Я показав лише найпростіший приклад (модуль AdminPassword). Взагалі, варто пошукати в Інтернеті, або спробувати придумати самому більш хитрий (Стійкий) алгоритм шифрування.
Отже, проведемо випробування:


Запускаємо програму. З’являється форма авторизації. Вводимо 123456, тиснемо введення – відкривається стартова форма. Тепер спробуємо відкрити форму frmStart без введення пароля. Запускаємо програму, утримуючи Shift – Відкривається вікно проекту Access. Намагаємося запустити frmStart – додаток закривається.
Якщо тепер додати в нашу програму захист від Shift, то додаток стане ще більш «неприступним».


Використовуючи захист від Shift і вхід через форму авторизації, можна здорово попсувати нерви всім любителям лазити куди не слід. Але припустимо, Ви вирішите встановити (продати) свою програму – кому. Як зробити так, щоб він не зміг поширювати її без Вашого відома? Іншими словами, як організувати сервіс реєстрації програми? Про це в наступній статті …


Приклад, як це все працює, Ви можете завантажити нижче.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*