0

作成中のクラスのインスタンスをブロックするように JVM を構成する方法はありますか?

JVM で実行されているサービスが、 CVEでセキュリティ リスクとして識別されたクラスのインスタンスを作成できないようにするために、これを行いたいと思います。そのクラスを呼び出すことができますBadClass

注: 私は一般的な解決策を探しているので、以下は純粋に追加情報です。私は通常、ライブラリを切り替えるか、エクスプロイトを持たないバージョンにアップグレードすることでこれに対処しますが、それはしばらくの間問題に対処しない大きなライブラリの一部です. だから私はBadClassどこにも使っていませんが、完全にブロックしたいと思っています。

4

2 に答える 2

2

明確な非回答:試してはいけません!

この依存関係を持つ大規模なライブラリがそのメソッドを呼び出したい場合はどうなるでしょうか? ではどうすればよいのでしょうか。

言い換えれば、あなたのブロッキングは何をすることになっていますか?

  • ErrorJVM の分解につながるいくつかのインスタンスをスローしますか?
  • null を返して、(おそらくかなり後で) 他のコードが NPE に遭遇するようにしますか?

覚えておいてください: そのクラスは void には存在しません。それを呼び出す他のコードがあります。そのコードはあなたが入ってくる準備ができていません。

これらの質問に対する良い答えはないと思います。

したがって、本当に「操作」したい場合は、次のようにします。

代わりに、その特定のクラスの別のバージョンをクラスパスに忍び込ませてみてください。セキュリティ上の問題がない公式のものか、必要なインターフェースに準拠し、害の少ないものです。または、あえてその道を進む場合は、他の回答が示唆するようにして、「自分のクラスローダー」ビジネスに取り掛かります。

いずれにせよ、最初の目的は、ここで要件を明確にすることです。ブロッキングとはどういう意味ですか?!

于 2020-10-27T13:36:36.357 に答える