ここでは、クライアント側のJavaセキュリティの一般的な調査と、Eclipse IDEを使用したSecurityManagerのチェック方法のリストを示します。
クラスローダーは、クラス(=任意のJavaコードが実行される)を定義:信頼できないソースからロードするクラスにクラスローダーをそらすことができる
java.lang.ClassLoader.defineClass
java.net.URLClassLoader
=コード実行
のJavaビーンズイントロスペクション(example vuln - cve-2010-1622)
java.beans.Instrospector.getBeanInfo
=コード実行
ファイルアクセス
java.io.File (constructor)
java.io.File.delete
java.io.File.renameTo
java.io.File.listFiles
java.io.File.list
リスト=削除/リネームファイル、ディレクトリ
ファイルストリーム/リーダークラス
java.io.FileInputStream
java.io.FileOutputStream
java.io.FileReader
java.io.FileWriter
java.io.RandomAccessFile
=ファイルの読み取り/書き込みアクセス
のJavaシステムプロパティ
System.setProperty
System.getProperties
System.getProperty
=一部のシステム・プロパティは、ほとんど敏感だいくつかの情報が含まれている可能性があり、いくつかのシステムプロパティは、重要なものの実行が、私は例を持っていない変えるかもしれ
かかわらずネイティブライブラリをロード
System.load
System.loadLibrary
=任意のコードの実行
実行するオペレーティングシステムの実行可能ファイル
Runtime.exec
ProcessBuilder (constructor)
生成ネイティブシステム入力イベント
java.awt.Robot.keyPress/keyRelease
java.awt.Robot.mouseMove/mousePress/mouseRelease
(サーバーもグラフィカル環境を持っていない可能性がありますので、たぶん、こじつけ)
Javaのリフレクション - 任意のアクセス(even最終的なコードが実行される機密情報の開示から秘密)フィールドとメソッド
java.lang.Class.getDeclaredMethod
java.lang.Class.getDeclaredField
java.lang.reflection.Method.invoke
java.lang.reflection.Field.set
java.lang.reflection.Field.get
=、状況に応じて
Javaスクリプトエンジン
javax.script.ScriptEngine.eval
=任意のコード実行
*すべてのシンク関数?このリストは無限である。なぜなら、このような関数を任意に多数定義することができるからである。 – meriton
@meriton PHPのために作成したリストが見えましたか? – rook
私は彼がJavaライブラリのコードを地下のライブラリではないと言います。 – Woot4Moo