powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как запретить использовать reflection для некоторых классов?
11 сообщений из 11, страница 1 из 1
Как запретить использовать reflection для некоторых классов?
    #39401842
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Подскажите пожалуйста есть ли способ запретить использовать reflection для некоторых классов?

Не много покопавшись в интернете я нашел способ как запретить reflection для всех классов. Для этого нужно установить SecurityManager, но мне не нужно для всех мне нужно для определенных которые, например наследуются от моего класса MySecureClass.
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39401857
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,

По-хорошему никак. Чтобы получить, например, имя класса в SecurityManager нужно из стэка выковарять экземпляр класса Class, который вызвал SecurityManager. А нормального способа это сделать в Java, вроде нет.

То есть, если очень сильно захотеть, то попробовать можно. Но по большому счету оно не нужно и не стоит тех усилий. Как альтернатива, существует, обфускация, например.
Или вот Sealing:
https://docs.oracle.com/javase/tutorial/deployment/jar/sealman.html

А вопрос, у вас, как обычно, не про проблему, а про придуманное вами решение какой-то проблемы.
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39401910
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

а я люблю делать велосипеды :)

для того чтобы не изобретать велосипед, надо знать, что уже есть и как это применять, и только тогда появятся знания как правильно поставить задачу, а потому уже ее решать...

как давно я на этом форуме спрашивал как сделать модульную систему
http://www.sql.ru/forum/1202486/kak-razbit-proekt-na-moduli?hl=
вместо того чтобы получить ссылку на OSGI :) получил все кроме правильного ответа. поэтому и приходиться выдумывать велосипеды.

но все же за ответ спасибо буду дальше выпиливать свой велосипед :)
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39402047
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin, ты можешь написать логику на С++ к примеру и завернуть ее в native-вызов из Java
это уж точно помешает злоумышленнику (!) подсмотреть на то как организована твоя секретная
часть кода.

Но есть ли смысл? В Java постулировано на уровне спецификаций что рефлексия может поднять
сведения обо всех сигнатурах методов и названиях классов.

О SecurityManager можно говорить когда мы имеем уже работающий app-server. Но не тогда,
когда ваш артифакт скачали с maven rep.
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39402124
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я с самого начала не сказал для чего мне это надо, по этому вы меня не правильно поняли. прошу прощения.

Поясняю:
1. Есть модульное приложение. Не OSGI :)
2. Есть разработчики модулей (системщики и прикладники)
3. Есть системные модули
4. Есть прикладные модули

так вот мне надо сделать "песочницу" внутри моего приложения.
прикладники должны работать в песочнице и не иметь возможности читать приват поля системных классов

как отличить системные модули от пользовательских пока не понятно, но не суть... пока можно просто по имени класса.
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39402226
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinдля того чтобы не изобретать велосипед, надо знать, что уже есть и как это применять, и только тогда появятся знания как правильно поставить задачу, а потому уже ее решать...

как давно я на этом форуме спрашивал как сделать модульную систему

А всё потому что терминологии не знаете. Как в той теме, если плагин это модуль, то это ещё не значит что всякие модуль - плагин.
Так и в этой теме - "велосипеды" это что-то уже давно придуманное и широко используемое. То что вы хотите - нигде не используется и не существует. Чтобы получить точный ответ нужно сначала задать точный вопрос. Но ни в одной из тем вы не желаете описать проблему. Вы спрашиваете только про своё решение проблемы, при этом даже не заботясь выбором точных терминов.
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39402330
breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выделить для прикладников отдельную jvm
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39402363
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinВсем привет! Подскажите пожалуйста есть ли способ запретить использовать reflection для некоторых классов?
Для начала, надо запретить использование Unsafe. В 9-ке говорят будет из коробки. :)
А так - разрешаешь подмену стандартных классов. В контейнер загружаешь подмененные для всего Reflection API. Ну и как-то транслируешь вызовы к оригинальным.

Когда все наладишь, чтоб не отвалилась половина функционала, будешь уметь строить свою JVM с нуля. :)
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39402509
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczMandarinдля того чтобы не изобретать велосипед, надо знать, что уже есть и как это применять, и только тогда появятся знания как правильно поставить задачу, а потому уже ее решать...

как давно я на этом форуме спрашивал как сделать модульную систему

А всё потому что терминологии не знаете. Как в той теме, если плагин это модуль, то это ещё не значит что всякие модуль - плагин.
Так и в этой теме - "велосипеды" это что-то уже давно придуманное и широко используемое. То что вы хотите - нигде не используется и не существует. Чтобы получить точный ответ нужно сначала задать точный вопрос. Но ни в одной из тем вы не желаете описать проблему. Вы спрашиваете только про своё решение проблемы, при этом даже не заботясь выбором точных терминов.

конечно я не владею терминологией и не могу правильно сформулировать вопрос, потому что что не знаю терминологию :) получается масло масленое... по этому и пытаюсь выразить мысли своими словами. Если бы я мог правильно сформулировать вопрос стал бы я тут писать :) сходил бы в гугл с правильным вопросом :)
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39402510
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевMandarinВсем привет! Подскажите пожалуйста есть ли способ запретить использовать reflection для некоторых классов?
Для начала, надо запретить использование Unsafe. В 9-ке говорят будет из коробки. :)
А так - разрешаешь подмену стандартных классов. В контейнер загружаешь подмененные для всего Reflection API. Ну и как-то транслируешь вызовы к оригинальным.

Когда все наладишь, чтоб не отвалилась половина функционала, будешь уметь строить свою JVM с нуля. :)

жду девятку :)
...
Рейтинг: 0 / 0
Как запретить использовать reflection для некоторых классов?
    #39402513
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinконечно я не владею терминологией и не могу правильно сформулировать вопрос
зато критиковать в целом форум вы умеете:
Mandarinвместо того чтобы получить ссылку на OSGI :) получил все кроме правильного ответа.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как запретить использовать reflection для некоторых классов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]