|
|
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
Всем привет! Подскажите пожалуйста есть ли способ запретить использовать reflection для некоторых классов? Не много покопавшись в интернете я нашел способ как запретить reflection для всех классов. Для этого нужно установить SecurityManager, но мне не нужно для всех мне нужно для определенных которые, например наследуются от моего класса MySecureClass. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 18:48 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
Mandarin, По-хорошему никак. Чтобы получить, например, имя класса в SecurityManager нужно из стэка выковарять экземпляр класса Class, который вызвал SecurityManager. А нормального способа это сделать в Java, вроде нет. То есть, если очень сильно захотеть, то попробовать можно. Но по большому счету оно не нужно и не стоит тех усилий. Как альтернатива, существует, обфускация, например. Или вот Sealing: https://docs.oracle.com/javase/tutorial/deployment/jar/sealman.html А вопрос, у вас, как обычно, не про проблему, а про придуманное вами решение какой-то проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 19:09 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, а я люблю делать велосипеды :) для того чтобы не изобретать велосипед, надо знать, что уже есть и как это применять, и только тогда появятся знания как правильно поставить задачу, а потому уже ее решать... как давно я на этом форуме спрашивал как сделать модульную систему http://www.sql.ru/forum/1202486/kak-razbit-proekt-na-moduli?hl= вместо того чтобы получить ссылку на OSGI :) получил все кроме правильного ответа. поэтому и приходиться выдумывать велосипеды. но все же за ответ спасибо буду дальше выпиливать свой велосипед :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 21:06 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
Mandarin, ты можешь написать логику на С++ к примеру и завернуть ее в native-вызов из Java это уж точно помешает злоумышленнику (!) подсмотреть на то как организована твоя секретная часть кода. Но есть ли смысл? В Java постулировано на уровне спецификаций что рефлексия может поднять сведения обо всех сигнатурах методов и названиях классов. О SecurityManager можно говорить когда мы имеем уже работающий app-server. Но не тогда, когда ваш артифакт скачали с maven rep. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 10:11 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
я с самого начала не сказал для чего мне это надо, по этому вы меня не правильно поняли. прошу прощения. Поясняю: 1. Есть модульное приложение. Не OSGI :) 2. Есть разработчики модулей (системщики и прикладники) 3. Есть системные модули 4. Есть прикладные модули так вот мне надо сделать "песочницу" внутри моего приложения. прикладники должны работать в песочнице и не иметь возможности читать приват поля системных классов как отличить системные модули от пользовательских пока не понятно, но не суть... пока можно просто по имени класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 11:29 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
Mandarinдля того чтобы не изобретать велосипед, надо знать, что уже есть и как это применять, и только тогда появятся знания как правильно поставить задачу, а потому уже ее решать... как давно я на этом форуме спрашивал как сделать модульную систему А всё потому что терминологии не знаете. Как в той теме, если плагин это модуль, то это ещё не значит что всякие модуль - плагин. Так и в этой теме - "велосипеды" это что-то уже давно придуманное и широко используемое. То что вы хотите - нигде не используется и не существует. Чтобы получить точный ответ нужно сначала задать точный вопрос. Но ни в одной из тем вы не желаете описать проблему. Вы спрашиваете только про своё решение проблемы, при этом даже не заботясь выбором точных терминов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 12:34 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
выделить для прикладников отдельную jvm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 15:01 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
MandarinВсем привет! Подскажите пожалуйста есть ли способ запретить использовать reflection для некоторых классов? Для начала, надо запретить использование Unsafe. В 9-ке говорят будет из коробки. :) А так - разрешаешь подмену стандартных классов. В контейнер загружаешь подмененные для всего Reflection API. Ну и как-то транслируешь вызовы к оригинальным. Когда все наладишь, чтоб не отвалилась половина функционала, будешь уметь строить свою JVM с нуля. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 15:46 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczMandarinдля того чтобы не изобретать велосипед, надо знать, что уже есть и как это применять, и только тогда появятся знания как правильно поставить задачу, а потому уже ее решать... как давно я на этом форуме спрашивал как сделать модульную систему А всё потому что терминологии не знаете. Как в той теме, если плагин это модуль, то это ещё не значит что всякие модуль - плагин. Так и в этой теме - "велосипеды" это что-то уже давно придуманное и широко используемое. То что вы хотите - нигде не используется и не существует. Чтобы получить точный ответ нужно сначала задать точный вопрос. Но ни в одной из тем вы не желаете описать проблему. Вы спрашиваете только про своё решение проблемы, при этом даже не заботясь выбором точных терминов. конечно я не владею терминологией и не могу правильно сформулировать вопрос, потому что что не знаю терминологию :) получается масло масленое... по этому и пытаюсь выразить мысли своими словами. Если бы я мог правильно сформулировать вопрос стал бы я тут писать :) сходил бы в гугл с правильным вопросом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 22:15 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевMandarinВсем привет! Подскажите пожалуйста есть ли способ запретить использовать reflection для некоторых классов? Для начала, надо запретить использование Unsafe. В 9-ке говорят будет из коробки. :) А так - разрешаешь подмену стандартных классов. В контейнер загружаешь подмененные для всего Reflection API. Ну и как-то транслируешь вызовы к оригинальным. Когда все наладишь, чтоб не отвалилась половина функционала, будешь уметь строить свою JVM с нуля. :) жду девятку :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 22:16 |
|
||
|
Как запретить использовать reflection для некоторых классов?
|
|||
|---|---|---|---|
|
#18+
Mandarinконечно я не владею терминологией и не могу правильно сформулировать вопрос зато критиковать в целом форум вы умеете: Mandarinвместо того чтобы получить ссылку на OSGI :) получил все кроме правильного ответа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 22:22 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39402047&tid=2123159]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
87ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 383ms |

| 0 / 0 |
