Под "защитой БД" здесь понимается способ предотвратить несанкционированный доступ к информации, хранимой в таблицах. Защита исходного кода форм и модулей не рассматривается.
Под "защитой БД" здесь понимается способ предотвратить
несанкционированный доступ к информации, хранимой в таблицах. Защита
исходного кода форм и модулей не рассматривается.
Совсем не обязательно использовать программы, позволяющие определить
пароль БД или пользователя. Часто программисты совсем не заботятся о
сокрытии пароля в тексте программы. Запустив программу, работающую с
защищённой БД необходимо открыть в шестнадцатеричном редакторе WinHex
виртуальную память этого приложения. Проведя поиск Unicode строк 'User
ID='; 'Password='; 'Database Password=' или 'pwd=' можно найти имя
пользователя, его пароль и пароль базы данных.
Можно вовсе проигнорировать наличие защиты. Для этого надо
воспользоваться
AccessRecovery, которая создаёт новый файл без защиты и переносит в
него таблицы, запросы, формы, макросы, отчеты и код модулей.
Во-вторых, можно попытаться определить пароль БД с помощью
специальных программ. В обзоре
Пароли Access приводится сводная таблица по их возможностям.
В-третьих, можно узнать пароль, проанализировав код программы в
отладчике. Каков бы ни был пароль, он всё равно передаётся как
текстовая строка в методе открытия БД. При наличии определённого
опыта - это не очень сложная задача. Когда мне впервые встретилась
подобная защита - пароль удалось найти, используя отладчик OllyDbg,
найдя место создания ADODB.Connection
Узнать или изменить пароль БД можно, не прибегая к помощи
специальных программ. В Access 97 пароль получается сложением по XOR
пароля с 20 байтной последовательностью. Значения этих байт можно
получить из любого не защищённого паролем mdb файла. Начиная с
Access 2k, в связи с использованием Unicode, для хранения 20
символов пароля отведены 40 байт. При шифровании также используется
сложение по XOR, но для получения последовательности байт
соответствующей пустому паролю необходимо создать файл с датой
исследуемой БД. Полученные байты можно вписать в исследуемый файл и
обнулить пароль, либо сложить их с аналогичными байтами исследуемого
файла и получить значение пароля.
В данной работе не рассматриваются возможные манипуляции с файлами
рабочих групп. Наверняка существуют способы защитить хранимые в них
пароли от слишком любопытных программ, но все это теряет смысл при
использовании AccessRecovery, который защиту вообще не замечает.
При разработке CMS S.Builder наша команда
активно использовала AJAX. Теперь вот решили поделиться накопленным
опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные
фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в
S.Builder написана библиотека
sbAJAX. Можете качать и пользоваться :). В этом файле есть функция
sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке
на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет
или полезут баги. Эта функция как раз решает поставленную задачу.
Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной
версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и
гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и
имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией
Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые
другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все
внимание на флагманский продукт —
Dojo
1.2.
Если вы профессиональный веб-разработчик и постоянно имеете дело с
разработкой и отладкой сложных AJAX приложений, то наверняка знаете и
используете Firebug — плагин для браузера
Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его
версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем,
которые могут возникнуть при разработке. Но и этот инструмент не лишён если не
недостатков, то некоторых фич, которые могли бы облегчить работу. И даже
идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.