2016-09-21 15 views
1

私のアプリケーションでセキュリティスキャンを実行しましたが、これまでに出されたセキュリティ問題の1つは、 "無欠性チェックなしのコードのダウンロード"です。 Class.forName( "com.mysql.jdbc.Driver")のセキュリティ保護方法

  • ?私は

    1. 私は上記のコード行をどのように保護しますを見つけることができない持ってClass.forName("com.mysql.jdbc.Driver");

      でのラインのどのように私はforName("")のため必ずパラメータが、その私が悪意のあるクラスではありません作るのですか読み込み中です。

    注:私はライブ環境でJava 1.7を使用しています。セキュリティポリシー/ SecurityManagerは用意されていません。

    編集:使用されるセキュリティスキャンはCheckmarxです。

    +1

    削除します。それは2007年以来必要とされていません。 – EJP

    +0

    それはうまく動作します。ありがとう! –

    答えて

    3

    recent JDBC driversとすると、Class.forName()の登録はもう必要ありません。ドライバが古い場合(JDBC4以降ではない場合)、ドライバを更新すると、その行を完全に削除することができます。

    セキュリティ上の問題は、thisを参照しているように見えます。これは、攻撃者が既にクラスパスにアクセスしていることを意味するため、他の方法でも十分なダメージを与える可能性があります。その時点でチェックサムをチェックすることを推奨する解決法はあまり役に立たないかもしれません。

    +0

    それでも、それはレポートのバグのように聞こえる。 – chrylis

    +1

    彼は彼がどのツールを使っているのか、それが何の根拠になるのかは言及していませんでした。なぜ「コードのダウンロード」について語っているのか疑問だ。 – Kayaman

    +0

    それは私のために働いた。しかし、クラスが "" com.mysql.jdbc.Driver "'でない場合はどうなりますか?どのように 'Class.forName();'を保護しますか?それで? –

    関連する問題