クラスパスからJavaスクリプトAPIのスクリプトにオブジェクトをインポートする機能を無効にすることはできますか? スクリプトの実行時に、エンジンのバインディングにあるものだけにアクセスできるようにスクリプターを残すことが目的です。場合によっては、ランダムなクラスをスクリプトにインポートすることはセキュリティ上の問題となります。JavaスクリプトでimportPackage、importClassおよびJavaImporterを無効にする
2
A
答えて
1
一つは、これらの関数の定義を上書きし、このようなスクリプトをサニタイズすることができます
private String sanitizeScript(String script) {
if (containsMoreThanOneStatement(script)) {
throw new ScriptedPermissionsException("Scripts may only contain one statement!!");
}
return new StringBuilder()
.append("function importPackage(a){ throw 'Cannot import!'};").append('\n')
.append("function importClass(a){ throw 'Cannot import!'};").append('\n')
.append("function JavaImporter(a){ throw 'I said, no importing!!'};").append('\n')
.append(script).append(';')
.toString();
}
しかしこれはまだあなたの意図は制限する場合には1はまだ
java.lang.Class.forName('foo.bar.Zap')
0
を行うことができますことを警告していますインポート関数の呼び出しは、ScriptEngineの初期化時にnullを返します。
engine.eval("importPackage = null;");
関連する問題
- 1. セレクタおよびisEnabled()でリストビュー項目を無効にする
- 2. スタックオーバーフロー、Redis、およびキャッシュの無効化
- 3. prop( "disabled"、true);およびattR(「無効」「無効」)は、クロムとFirefox
- 4. Umbracoの保存および公開ボタンを無効にする
- 5. Javaスクリプトでキーコード111を無効にする/
- 6. IEで特定のIE9アドオンを無効にするC#およびアドインエクスプレス
- 7. wordpressプラグインを無効にしてJavaスクリプトを呼び出す方法
- 8. Javaまたは他の言語を使用してjqueryおよびjavascriptスクリプトをロードおよび実行する
- 9. JavaでSHAおよびテストツール
- 10. ドラッグおよびJava
- 11. JavaおよびUseLargePages
- 12. JavaアクティビティサービスクラスおよびJavaアクティビティアプリケーションクラス
- 13. rootログインを無効にするBashスクリプト
- 14. UIScrollViewのは、固定点でズーム、および/アウトでピンチを無効
- 15. 継承およびJava
- 16. Java、unicode、およびfont
- 17. クラス、オブジェクト、およびメソッド。 Java
- 18. リフレクション、継承、およびJava
- 19. AndroidおよびJavaのTimeZone.getAvailableIDs
- 20. AESのJavaScriptおよびJava
- 21. JSP、JavaScript、およびJavaオブジェクト
- 22. J2SEおよびJava DB
- 23. java:インポート、クラスパス、およびパッケージ
- 24. のJava(インタフェースおよびクラス)
- 25. リテラルをエスケープする<?phpおよび<? PHPスクリプトで
- 26. ローカル変数のtext、ntext、およびimageデータ型が無効です
- 27. rails 3はmp3プレーヤー(SWFおよびJs)への参照を無効にしているようです
- 28. スイング、Javaおよびマルチスレッド、および着色ボタン
- 29. Java EEインターセプタを無効/無効にする方法は?
- 30. WWANデバイスを無効にして有効にするスクリプト