Gibt es eine Chance für die Verletzung der Java-Sicherheitsrichtlinie durch Java native Schnittstelle. Welches sind die Hauptbereiche, die wir verwenden müssen JNIJava Native Interface und Sicherheit
Antwort
Ja, sobald Sie nativen Code über JNI aufrufen, kann es so ziemlich alles tun, was der aktuelle Benutzer tun darf - z. lösche alle ihre Dateien. Das Java-System kann nichts kontrollieren, was der systemeigene Code tut.
Sie haben nicht haben JNI für alles verwenden - es wird typischerweise für z. Zugriff auf niedriger Ebene (z. B. kritische Fehlerbehandlung für ein entfernbares Laufwerk) oder Zugriff auf eine C-API, die kein Pure-Java-Äquivalent aufweist.
Die Java-Sicherheitsrichtlinien gelten einfach nicht für nativen Code, der über JNI aufgerufen wird, sodass der native Code diese natürlich nach Belieben verletzen kann.
Was für JNI wir verwendet haben, ist in diesen Tagen hauptsächlich OS-spezifische APIs oder eine Schnittstelle mit existierendem Nicht-Java-Code aufzurufen. Früher war das Verbessern der Leistung ein häufig genannter Grund, aber angesichts des Zustands von VMs und JIT-Compilern heute macht das fast nie Sinn.
Das ist sicher, kann Sicherheit, Weißt du, kann JNI für Benutzer-Code mit java secirity deaktivieren? –