Java Джексон json объекту десерилизации. Как бороться с небезопасной десериализацией OW ASP? - PullRequest
2 голосов
/ 02 августа 2020

Угроза OW ASP небезопасная десериализация хорошо известна. Мой вопрос в том, как уменьшить эту угрозу, когда мы используем библиотеки синтаксического анализатора, такие как Jackson et c в части java?

Решает ли проблему проверка с использованием проверки Hibernate или Java? Или существуют какие-либо специальные или лучшие методы для смягчения этой проблемы?

1 Ответ

2 голосов
/ 03 августа 2020

Прежде всего, вся проблема десериализации связана с десериализацией Java объектов. Дело не в демаршалинге XML или чтении JSON. Существуют и другие классы уязвимости для решения этих проблем.

Представьте, что ваш код принимает на вход класс Java (может быть закодирован в Bas64 и предоставлен через конечную точку REST). Зачем кому-то это делать? Что ж, если вы хотите сохранить состояние удаленно, вы можете сериализовать класс Java, отправить его и получить обратно, когда это необходимо. Без разницы? Ну, Дженкинс все равно делал это какое-то время go.

Настоящая проблема не в десериализации, а в предотвращении выполнения кода во время десериализации. Как предотвратить вызов readObject()? Он будет вызываться автоматически. А предотвращение того, что происходит глубоко в коде Java, является проблемой.

Вы можете попробовать поиграть с notsoserial или SerialKiller , но это не сделает ваш код проще и легче читать. Единственное, что действительно работает, - это не использовать десериализацию ненадежных объектов в любом месте кода.

...