2016-12-06 1 views
0

Ich habe einen Sicherheitsscan für unsere Anwendung ausgeführt, und eines der Sicherheitsprobleme, die dabei auftraten, ist "Download des Codes ohne Integritätsprüfung". Diese Risikopunkte der Linie Class.forName("SimpleClass");So sichern Sie Class.forName ("SimpleClass")?

Wie sichere ich die obige Codezeile? Wie stelle ich sicher, dass der Parameter für forName("") keine bösartige Klasse ist, die ich laden würde.

Bearbeiten: Security Scan verwendet wird Checkmarx.

+0

Bitte beschreiben Sie, woher die Klasse kommt. Wenn wir den vollen Verlauf des Angriffs verstehen, können wir die Situation besser verstehen und Ihnen helfen. – yaloner

Antwort

-1

Legen Sie keine Klasse mit nicht vertrauenswürdigen Klassen in Ihren Klassenpfad.

Die Nachricht ist falsch. Dies wird nichts herunterladen. Es wird nur eine Klasse geladen, die bereits in Ihrem Klassenpfad sein muss, um erfolgreich geladen zu werden.

1

Wenn Sie keine Klassen von außen bekommen, gilt this weakness hier nicht. In diesem Fall können Sie eine bösartige Klasse laden, wenn sie sich bereits im Klassenpfad befindet. Das heißt, der Angreifer hat bereits Zugriff auf den Klassenpfad - in diesem Fall ist Widerstand sinnlos.

Wenn Sie Klassen von außen bekommen - wie, laden Sie sie von irgendwo herunter oder erlauben Sie Benutzern, Klassen oder Quellcode hochzuladen und zu kompilieren - dann unterliegen Sie dieser Schwäche und müssen Maßnahmen ergreifen. Wenn Sie Klassen von Benutzern erhalten, haben Sie ein Problem. :) Wenn Sie sie von einem sicheren Ort erhalten, können Sie HTTPS verwenden oder Signaturen selbst prüfen. Aber ich denke, das ist nicht dein Fall.