Отслеживание доступа к файлам из Java-апплета

#java #file #applet #logging #audit

#java #файл #апплет #ведение журнала #аудит

Вопрос:

Возможно ли отслеживать (регистрировать) весь доступ к файлам из Java-апплета (стороннего разработчика), которому был предоставлен доступ к локальному диску?

Необходимо просто регистрировать, к каким файлам осуществляется доступ.

Комментарии:

1. Нет, это апплет поставщика, за которым я не хочу «следить».

Ответ №1:

Я не думаю, что это возможно из коробки — в конце концов, это апплет без ограничений безопасности.

Если вы можете изменить этот апплет (или запустить его в какой-либо среде, которой вы управляете), вы можете установить менеджер безопасности, чьи checkRead и checkWrite (возможно также checkDelete и аналогичные) методы ведут ваше протоколирование.

Кроме этого, возможно, есть какие-то функции отладки, которые вы могли бы использовать.

В общем, если вашему апплету не требуется произвольный доступ, вам следует использовать JNLP API для доступа к локальным файлам — тогда пользователь имеет над ним контроль.

Ответ №2:

Возможная (непроверенная) стратегия

Загрузчик апплета для ведения журнала файлов

  1. Создайте свой собственный (доверенный) апплет для загрузки стороннего апплета, который выполняет доступ к файлам.
  2. Используйте заглушку и контекст апплета из родительского апплета для вновь загруженного апплета.
  3. Установите пользовательский SecurityManager .
  4. В FileLoggingSecurityManager переопределите checkPermission(разрешение), чтобы проверить наличие экземпляров FilePermission.
  5. Регистрируйте их.