2016-09-21 2 views
1

Ich führte einen Sicherheits-Scan für unsere Anwendung durch, und eines der Sicherheitsprobleme, die dabei auftraten, ist" Download des Codes ohne Integritätsprüfung ". Dieses Risiko deutet darauf hin die Linie bei Class.forName("com.mysql.jdbc.Driver");So sichern Sie Class.forName ("com.mysql.jdbc.Driver)?

habe ich

  1. , um herauszufinden, nicht in der Lage, wie ich die obige Codezeile sichern?
  2. Wie kann ich sicher, dass Parameter für forName("") ist nicht bösartig Klasse, würde ich geladen werden

Hinweis: Ich verwende Java 1.7 in unserer Live-Umgebung. Wir haben keine Sicherheitsrichtlinie/SecurityManager installiert.

Bearbeiten: Security Scan verwendet wird Checkmarx.

+1

Entfernen Sie es. Es wurde seit 2007 nicht benötigt. – EJP

+0

Yup das funktioniert. Vielen Dank! –

Antwort

3

Mit recent JDBC drivers muss die Class.forName() Registrierung nicht mehr durchgeführt werden. Aktualisieren Sie Ihren Treiber, wenn er alt ist (nicht JDBC4 oder neuer), und Sie können die Leitung vollständig entfernen.

Das Sicherheitsproblem scheint sich auf this zu beziehen, was bedeuten würde, dass der Angreifer bereits Zugriff auf den Klassenpfad hat und daher auch auf andere Weise viel Schaden anrichten kann. Die vorgeschlagene Lösung, eine Prüfsumme zu diesem Zeitpunkt zu überprüfen, ist möglicherweise nicht allzu hilfreich.

+0

Trotzdem klingt das immer noch wie ein Bug im Bericht. – chrylis

+1

Könnte sein, er hat nicht erwähnt, welches Werkzeug er benutzt oder auf welcher Grundlage es das kennzeichnen würde. Es ist auch fraglich, warum es um "Download von Code" geht. – Kayaman

+0

Das hat für mich funktioniert. Aber was, wenn die Klasse nicht "com.mysql.jdbc.Driver" ist. Wie sichern Sie 'Class.forName();' dann? –

Verwandte Themen