Оказывается, замена mdb на asp может помешать загрузке — это нонсенс. Используйте Flashget для проверки загрузки файла data.asp и сохраните его как файл data.mdb. Я обнаружил, что он не поврежден при открытии с помощью ACCESS! 1. Используйте свое воображение, чтобы изменить имя файла базы данных.
Однако если злоумышленник получит путь к базе данных сторонним способом, он сможет скачать базу данных. Поэтому конфиденциальность минимальна.
2. Измените суффикс имени базы данных на ASA, ASP и т. д.
Этот метод необходимо комбинировать с некоторыми настройками, иначе произойдет ситуация, описанная в начале статьи.
(1) Добавлено двоичное поле.
(2) Добавьте <% или %> в этот файл, IIS проанализирует его в соответствии с синтаксисом ASP, а затем сообщит об ошибке 500, естественно, его невозможно загрузить. Однако бесполезно просто добавлять <% в текстовое или памятное поле базы данных, поскольку ACCESS обработает содержимое, и оно будет существовать в базе данных как <%, что неверно! Правильный метод — сохранить <% в поле объекта OLE, чтобы можно было достичь нашей цели.
Как это сделать:
Сначала с помощью блокнота создайте новый текстовый файл с содержимым <%, присвойте ему случайное имя и сохраните.
Затем откройте файл базы данных с помощью Access, создайте новую таблицу, присвойте ей случайное имя, добавьте в таблицу поле объекта OLE, затем добавьте запись и вставьте созданный ранее текстовый файл. Если все сделано правильно, вы сможете. чтобы увидеть новую запись под названием «Пакет данных».
3. Добавьте # перед именем базы данных.
Просто добавьте # к имени файла базы данных, а затем измените адрес базы данных в файле подключения к базе данных (например, conn.asp). Принцип заключается в том, что при загрузке распознается только часть перед знаком #, а следующие части будут автоматически удалены. Например, если вы хотите загрузить: http://www.pcdigest.com/date/#123. .mdb (при условии, что он существует). Будь то IE или FLASHGET, вы получаете http://www.test.com/date/index.htm (index.asp, default.jsp и т. д., документы домашней страницы, которые вы устанавливаете в IIS).
Кроме того, сохранение некоторых пробелов в имени файла базы данных также играет аналогичную роль. Из-за особенностей протокола HTTP для разрешения адресов пробелы будут кодироваться как %, например http://www.test.com/date/. 123;456.mdb, загруженный с http://www.test.com/date/123%456.mdb. В нашем каталоге вообще нет файла 123%456.mdb, поэтому загрузка недействительна. После этой модификации, даже если вы выставите адрес базы данных, другие вообще не смогут ее скачать!
4. Зашифруйте базу данных
Сначала выберите Инструменты->Безопасность->Шифровать/Расшифровать базу данных, выберите базу данных (например: сотрудник.mdb) и нажмите «ОК». После этого появится окно для сохранения базы данных после шифрования и сохраните ее как: сотрудник1. мдб. Затем сотрудник.mdb будет закодирован, а затем сохранен как сотрудник1.mdb. Следует отметить, что вышеуказанное действие не устанавливает пароль для базы данных, а только кодирует файл базы данных. Цель состоит в том, чтобы предотвратить использование другими инструментами. Просмотрите содержимое файла базы данных.
Далее шифруем базу данных. Сначала открываем закодированный файл сотрудников1.mdb. При открытии выбираем монопольный режим. Затем выберите в меню Инструменты->Безопасность->Установить пароль базы данных и введите пароль. Таким образом, даже если кто-то другой получит файл сотрудник1.mdb, он не сможет увидеть файл сотрудника1.mdb без пароля.
После шифрования вам необходимо изменить страницу подключения к базе данных, например:
conn.open driver={драйвер доступа Microsoft (*.mdb)};uid=admin;pwd=пароль базы данных;dbq=путь к базе данных
После этой модификации, даже если база данных скачана, другие не смогут ее открыть (при условии, что пароль на странице подключения вашей базы данных не утек)
Но стоит отметить, что, поскольку механизм шифрования базы данных Access относительно прост, даже если установлен пароль, расшифровка выполняется легко. Система базы данных формирует зашифрованную строку путем XOR введенного пользователем пароля с фиксированным ключом и сохраняет ее в области файла *.mdb, начиная с адреса &H42. Таким образом, хороший программист может легко написать небольшую программу из десятков строк, чтобы легко получить пароль к любой базе данных Access. Поэтому, пока база данных загружена, ее информационная безопасность остается неизвестной.
5. Поместите базу данных за пределы WEB-каталога или поместите файл подключения к базе данных в другие виртуальные каталоги.
Если ваш WEB-каталог — e:/webroot, вы можете поместить базу данных в папку e:/data и изменить адрес подключения к базе данных на странице подключения к базе данных в e:/webroot на: ../data/имя базы данных, чтобы базу можно было нормально вызвать, но скачать ее нельзя, так как ее нет в WEB-каталоге! Этот метод вообще не подходит для пользователей, приобретающих виртуальное пространство.
6. Используйте источники данных ODBC.
В таком программировании, как ASP, по возможности следует стараться использовать источники данных ODBC и не писать имя базы данных в программе. В противном случае имя базы данных будет потеряно вместе с конфиденциальностью исходного кода ASP. Например: DBPath. = Server.MapPath(. ./123/abc/asfadf.mdb)
conn.open driver={Драйвер Microsoft Access (*.mdb)};dbq=& DBPath
Видно, что каким бы странным ни было имя базы данных, какой бы глубокой ни была скрытая директория, после компрометации исходного кода ASP его можно легко скачать. Если вы используете источник данных ODBC, такой проблемы не будет: conn.open Имя ODBC-DSN, но это более раздражает. Если вы перемещаете каталог, вам придется сбросить источник данных. Более удобный метод см. Глава 7. 8 методов!
7. Добавьте расширенное сопоставление имени базы данных, например MDB.
Этот метод достигается путем изменения настроек IIS. Он подходит для друзей, у которых есть контроль над IIS, но не подходит для пользователей, приобретающих виртуальные хосты (если администратор не настроил их). Я думаю, что этот метод является лучшим на данный момент. Всего одним изменением можно предотвратить загрузку всей базы данных сайта. Загрузки можно предотвратить, даже если целевой адрес открыт без изменения кода.
Мы добавляем синтаксический анализ приложения файла .mdb в свойствах IIS --- Домашний каталог --- Конфигурация --- Сопоставление --- Расширение приложения. Обратите внимание, что выбранная здесь DLL (или EXE и т. д.) не является произвольной. Если выбор неверен, файл MDB все равно можно загрузить. Обратите внимание, что лучше не выбирать asp.dll и т. д. Вы можете проверить это сами
После этой модификации загрузите базу данных, например: http://www.test.com/data/dvbbs6.mdb. Появится (ошибки типа 404 или 500)
8: Преимущества использования .net
Му Няо из Dongwang написал инструмент защиты от хотлинков WBAL, позволяющий предотвратить незаконную загрузку файлов. Для получения подробной информации войдите на http://www.9seek.com/WBAL/;
Однако он предотвращает только нелокальные загрузки и не имеет функции реального предотвращения загрузки базы данных. Однако этот метод почти такой же, как метод 5. Вы можете изменить файл .NET так, чтобы его нельзя было загрузить локально!
Среди этих методов только 7-й и 8-й методы могут быть изменены единообразно. После однократного изменения конфигурации можно запретить загрузку базы данных всего сайта. Остальные несколько методов требуют изменения имени базы данных и файла подключения соответственно. это более хлопотно, но для друзей виртуального хоста это можно сделать только!
Фактически, шестой метод должен быть расширением пятого метода, который может выполнять специальные функции. Однако для хостов, которые не поддерживают .net или боятся неприятных настроек, лучше использовать непосредственно пятый метод, а также второй. шестой метод используется по умолчанию. Метод, вы все равно можете опубликовать, скопировав и подключившись к форуму или гостевой книге того же хоста, а затем нажав кнопку загрузки (поскольку такие справочные страницы находятся с одного и того же хоста).
9. Используйте настройки прав доступа к файлам раздела NTFS (от percyboy)
Мы уже знаем, что ASP.NET использует ADO.NET для доступа к базе данных, а к базе данных Access — одной из наших наиболее часто используемых баз данных нижнего уровня — можно получить доступ через соединение OleDb. В этой статье обсуждаются несколько сообщений об ошибках, которые можно увидеть в ASP.NET. Видно, что файлы базы данных, созданные в Access 2000 и Access XP, будут иметь разные сообщения об ошибках при возникновении ошибок доступа. Надеюсь, это поможет всем. Еще одним важным моментом является то, что я надеюсь, что благодаря этой статье каждый получит новое представление о настройках разрешений NTFS для файлов базы данных Access в ASP.NET.