Какие проблемы может вызвать отключение проверки байт-кода Java?

В этом ответе говорится, что проверка используется для обеспечения того, чтобы байт-код Java "соответствовал правилам языка Java для обеспечения безопасности".

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

Существуют ли ситуации, в которых допустимо отключение проверки байт-кода?


person user200783    schedule 07.07.2017    source источник
comment
Сбой, повреждение данных, ощущение грязности и т. д. Вы должны спросить наоборот: какое преимущество должно иметь отключение проверки?   -  person Holger    schedule 07.07.2017
comment
Вот пример того, что может произойти, если вы отключите проверку.   -  person apangin    schedule 08.07.2017


Ответы (2)


Проверка байт-кода гарантирует, что код не может делать такие вещи, как переинтерпретировать int как указатель и выполнять произвольный доступ к памяти. Это наиболее полезно, если вы пытаетесь запустить ненадежный код в песочнице Java.

Если вы полностью доверяете всему коду, который вы используете, он менее полезен, так как в этом случае он просто отловит случайные ошибки. Также возможно, что проверочная информация поступает в оптимизатор — я не уверен в этом, но оптимизатор, по сути, все равно должен проверить код, чтобы выполнить какой-либо полезный статический анализ.

person Antimony    schedule 07.07.2017

Настоятельно не рекомендуется использовать параметры "-Xverify:none" в производственной среде, так как они отключают проверку байт-кода и приводят к случайным сбоям. Пожалуйста, проверьте подробный блог здесь

person Fairoz    schedule 09.07.2017