2

私の初級 Java クラスの生徒たちは、ファイル I/O について学び始めており、彼らのプロジェクトの 1 つにファイルの削除と名前変更が含まれています。これがうまくいかない可能性がある方法は何十も考えられます。

したがって、Java のセキュリティ フレームワークを使用して、プログラムが特定のディレクトリに含まれていないファイルの名前変更、削除、または上書きを行うことを制限すると便利です。ディレクトリの外側を読むことは問題ありません。ポリシーは完全に防弾である必要はありません。これは、生徒の悪意から保護するというよりも、偶発的な損傷を防ぐためのものです。

しかし、私は学校のプログラミング コース以外で実際に Java の作業を行ったことがないため、ポリシー ファイルの作成方法や有効化の方法がわかりません。これを実現するために使用できる簡単なポリシー ファイルは何ですか? また、学生のコードを実行するときにどのように有効にしますか?

4

1 に答える 1

3

これは、特定のディレクトリへのファイル書き込みを制限するために使用できる単純なポリシー ファイルです。

grant codeBase "file:/some/root/path/sandbox/-" {
    permission java.io.FilePermission "*", "read";
    permission java.io.FilePermission "/tmp/*", "read, write";
};

からコードをステージングして起動し、フォルダにのみ/some/root/path/sandbox書き込み権限を付与することを前提としています。必要に応じて、読み取りおよび書き込み権限を追加できます。呼び出すには、次のコマンド ラインでコードを起動します。/tmp

java -Djava.security.manager -Djava.security.policy=student.policy YourClassName

これは、コードを起動する場所と同じフォルダーにある、student.policy というファイルにポリシーを保存したことを前提としています。

于 2013-03-18T15:36:59.787 に答える