4

私の Web サイトのユーザーに、JAR ファイル内で提供されるいくつかの静的リソースへのアクセスを提供したいと考えています。

ユーザーがアクセスできる必要があるすべてのファイルのリストを提供することはできませんが、それらがすべて JAR のサブディレクトリ内に含まれていることを確認できます。

public-access/file-1
public-access/file-2
public-access/sub-dir/file-3

ファイルは次の方法でアクセスされます。

this.getClass().getResource("/public-access/" + requestedFile);

パス トラバーサル攻撃を防ぐための推奨される方法はありますか? ../secretこれは、悪意のあるユーザーが、eg というファイルを要求するのを防ぐためです。sub-dir/../../secret

4

2 に答える 2

1

必要なのは、 SecurityManagerをオーバーライドしてカスタムセキュリティポリシーを定義することです。作成と登録の方法をうまく説明しているこのチュートリアルを確認してください。

独自のセキュリティマネージャを提供する

お役に立てれば

于 2013-02-21T09:43:52.873 に答える
1

Security Manager をご覧ください: http://docs.oracle.com/javase/tutorial/essential/environment/security.html

指定されたパスのリソースを開くことが許可されていないことを指定するだけで、必要なものを正確にサポートしていると思います。

于 2013-02-21T09:21:49.277 に答える