2011-02-08 5 views
0

Можете ли вы порекомендовать хорошее введение в нетривиальные файлы политики для стандартного Java SecurityManager?Java SecurityManager: хорошее введение в файлы политики

Есть ли примеры, выходящие за рамки того, что предлагает веб-сайт Java? Или, может быть, кто-то описывает, как защитить Tomcat, который запускает целую кучу разных веб-приложений?

[EDIT] Мой вариант использования - это приложение, которое может запускать скрипты, написанные тремя типами пользователей: 1. разработчиками приложений, 2. администраторами приложений и 3. конечными пользователями.

Пользователи из группы 1 должны иметь доступ практически к любому ресурсу (= нет необходимости в специальном SM).

Группе # 2 можно доверять, но мы хотели бы защитить их от глупых ошибок (например, позвонить System.exit).

Группе # 3 нельзя доверять. Обычно они пишут только небольшие скрипты.

Когда я запускаю сценарий, я знаю, откуда он. Будут ли файлы политики помогать в моем случае использования или мне нужно написать собственный SecurityManager?

ответ

0

Вы действительно просмотрели методы, доступные в SecurityManager?

  • Как он мог (SecurityManager) ответить на вопрос, может ли конкретный пользователь выполнить какое-либо действие?
    • Он не имеет возможности узнать, что пользователь пытается (действие)
    • Он не имеет возможности узнать, какие данные пользователь пытается операцию UPoN (вещи).

файлы полиции хороши только для ресурсов, которые необходимы некоторые ограничения безопасности, которые могут быть выражены с в сокращенном виде текста и обыкновение изменения в то время как виртуальная машина работает. Такие вещи как:

  • может читать только с жесткого диска/пути/в файл.
  • может читать только системное свойство X
  • может только открыть сокеты на порты ...

Вашего д не говорит, кто вы хотите протестировать и за какие действия они могут выполнять. Если вы attempgin ОТТ защиты страниц (думаю URLs), то вы могли бы хотеть рассмотреть что-то вроде Spring Security, который позволяет говорить такие вещи, как:

  • для URL «/ краш-компьютер» только позволяют пользователям в роли «противный "сделать это
  • только пользователи в роли„администратор“может получить доступ к„/ администратор/*“и т.д.

Вам нужно будет добавить собственную логику, чтобы сделать такие вещи, как только пользователь, который создал X или ее супер пользователь может обновить X.

+0

Моя проблема не в методах, а в аргументах: Какие значения я могу использовать кар? Например, как я могу разрешить доступ к моей базе данных через JDBC (возможно, есть определенный сокет), не позволяя вредоносному коду загружать данные на какой-либо веб-сайт? Как я могу убедиться, что я поймал всю рыбу?Может быть, какой-то специальный код в драйвере JDBC понадобится тому, чего я не предоставил. –