Пишу небольшое приложение. Одна из функций этого приложения (не самая главная) — это ограничение доступа к определенным файлам. Проблема в том, как это реализовать. Вначале в голову пришла мысль написать небольшое отдельное приложение, которое автоматически бы запускалось при старте Windows; оно бы открывало необходимые файлы с флагом доступа 0 (то есть без FILE_SHARE_READ и FILE_SHARE_WRITE), и держало бы хэндлы этих файлов открытыми до завершения работы Windows. Минус: слишком просто убить этот сервис через Task Manager, таким образом получив доступ к файлам.
Другая идея, которая пришла мне в голову — это написать Shell extension, которое бы работало аналогичным образом. Только, насколько я знаю, Windows Shell подключает эти расширения по мере необходимости (то есть, если я напишу Context menu extension, то Explorer не загрузит мою DLL до тех пор, пока пользователь не вызовет контекстное меню).
Хотелось бы узнать, кто что думает по этому поводу, и как еще можно решить эту задачу. Спасибо.
Re: Запретить доступ к файлу без написания драйвера
Здравствуйте, dimb, Вы писали:
D> Здравствуйте.
D> Пишу небольшое приложение. Одна из функций этого приложения (не самая главная) — это ограничение доступа к определенным файлам. Проблема в том, как это реализовать. Вначале в голову пришла мысль написать небольшое отдельное приложение, которое автоматически бы запускалось при старте Windows; оно бы открывало необходимые файлы с флагом доступа 0 (то есть без FILE_SHARE_READ и FILE_SHARE_WRITE), и держало бы хэндлы этих файлов открытыми до завершения работы Windows. Минус: слишком просто убить этот сервис через Task Manager, таким образом получив доступ к файлам.
...если есть права убивать (админские например), то да, конечно. Обычным пользователям нужно будетискать способ порушить Ваше приложение, TaskMAn им не поможет. Поэтом способ вполне стандартный
D> Другая идея, которая пришла мне в голову — это написать Shell extension, которое бы работало аналогичным образом. Только, насколько я знаю, Windows Shell подключает эти расширения по мере необходимости (то есть, если я напишу Context menu extension, то Explorer не загрузит мою DLL до тех пор, пока пользователь не вызовет контекстное меню).
соотв это будет решение только для приложений "понимающих" shell namespace. FAR без проблем доступится до файла.
D> Хотелось бы узнать, кто что думает по этому поводу, и как еще можно решить эту задачу. Спасибо.
фильтр файловой системы это единственный легальный путь на Windows платформе
... << RSDN@Home 1.1.3 beta 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[2]: Запретить доступ к файлу без написания драйвера
Здравствуйте, Valerio, Вы писали:
V>Здравствуйте, dimb, Вы писали:
D>> Здравствуйте.
D>> Обычным пользователям нужно будетискать способ порушить Ваше приложение, TaskMAn им не поможет. Поэтом способ вполне стандартный
Если у пользователя нет админских прав и он не является владельцем файла, то можно просто в настройках безопасности файла запретить ему доступ. Правда только на НТФС разделе.
Re: Запретить доступ к файлу без написания драйвера
Здравствуйте, Denis, Вы писали:
D>а как программа будет решать кому давать, а кому нет? и проблема только защитить от прочтения или от удаления тоже?
Программа предназначена для домашних пользователей. Пользователь создает архивы и может установить, можно ли эти архивы перемещать/удалять. Доступ к содержимому архивов осуществляется при предъявлении пароля.
Re[3]: Запретить доступ к файлу без написания драйвера
Здравствуйте, davenger, Вы писали:
D>Если у пользователя нет админских прав и он не является владельцем файла, то можно просто в настройках безопасности файла запретить ему доступ. Правда только на НТФС разделе.
ДА, конечно же стандартные ACL на NTFS никто не отменял!
... << RSDN@Home 1.1.3 beta 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[3]: Запретить доступ к файлу без написания драйвера
D> Программа предназначена для домашних пользователей. Пользователь создает архивы и может установить, можно ли эти архивы перемещать/удалять. Доступ к содержимому архивов осуществляется при предъявлении пароля.
А почему бы просто не шифровать файлы архивов?
----------------
Кирилл Грибунин
Re[4]: Запретить доступ к файлу без написания драйвера
Здравствуйте, gribunin, Вы писали:
G>А почему бы просто не шифровать файлы архивов?
На самом деле архивы зашифрованные. Просто хотелось бы, чтобы пользователь не удалил их по ошибке, то есть архивы должны лежать все время в одном месте.
Re[5]: Запретить доступ к файлу без написания драйвера
От:
Аноним
Дата:
18.03.06 11:58
Оценка:
Здравствуйте, dimb, Вы писали:
D>Здравствуйте, gribunin, Вы писали:
G>>А почему бы просто не шифровать файлы архивов?
D>На самом деле архивы зашифрованные. Просто хотелось бы, чтобы пользователь не удалил их по ошибке, то есть архивы должны лежать все время в одном месте.
А почему бы просто не хранить копию архивов и при загрузке системы проверять их целостность.