Voici une liste basée sur mes recherches personnelles sur la sécurité Java côté client en général et sur l'Eclipse IDE pour voir quelles méthodes sont vérifiées par SecurityManager.
classloaders définissent des classes (= code Java arbitraire exécution):
java.lang.ClassLoader.defineClass
java.net.URLClassLoader
= exécution de code
Java Beans Introspection peut détourner classloaders en classes de chargement à partir d'une source non approuvée (example vuln - cve-2010-1622)
java.beans.Instrospector.getBeanInfo
= L'exécution de code
d'accès aux fichiers
java.io.File (constructor)
java.io.File.delete
java.io.File.renameTo
java.io.File.listFiles
java.io.File.list
= Modification/suppression de fichiers, répertoriant
flux de fichiers/classes de lecture
java.io.FileInputStream
java.io.FileOutputStream
java.io.FileReader
java.io.FileWriter
java.io.RandomAccessFile
= Fichier accès en lecture/écriture
Java Propriétés système
System.setProperty
System.getProperties
System.getProperty
= Quelques propriétés du système peuvent contenir des informations et des propriétés du système qui est presque sensible pourrait modifier l'exécution de choses critiques, je n'ai pas d'exemples, bien que
bibliothèques natives Chargement
System.load
System.loadLibrary
= exécution de code arbitraire
Exécution executables du système d'exploitation
Runtime.exec
ProcessBuilder (constructor)
Génération d'événements d'entrée du système natif
java.awt.Robot.keyPress/keyRelease
java.awt.Robot.mouseMove/mousePress/mouseRelease
(Peut-être farfelue car un serveur peut même pas avoir un environnement graphique)
Java réflexion - accès arbitraire (même privé) champs et méthodes
java.lang.Class.getDeclaredMethod
java.lang.Class.getDeclaredField
java.lang.reflection.Method.invoke
java.lang.reflection.Field.set
java.lang.reflection.Field.get
= de divulguer des informations sensibles à l'exécution de code éventuel, selon les circonstances
Java moteur de script
javax.script.ScriptEngine.eval
= exécution de code arbitraire
* toutes * fonctions d'évier?Cette liste est infinie, car on peut définir arbitrairement plusieurs de ces fonctions. – meriton
@meriton avez-vous vu la liste que j'ai construite pour PHP? – rook
je crois qu'il se réfère au code de la bibliothèque java pas des bibliothèques de sous-sol – Woot4Moo