Java 1.6 でのシンボリック リンクの検証
シンボリック リンクの存在の確認は、さまざまなファイル処理操作にとって重要です。 Java では、特にディレクトリ トラバーサルのコンテキストにおいて、シンボリック リンクを識別する際に考慮すべき潜在的な問題があります。
シンボリック リンクをチェックする一般的なアプローチの 1 つは、ファイルの絶対パスと正規パスを比較することです。正規パスはファイルへの標準化されたパスを表しますが、絶対パスにはシンボリック リンクが含まれる場合があります。従来、これらのパスが一致する場合、そのファイルはシンボリック リンクではないという概念がありました。ただし、この状態は完全に信頼できるわけではありません。
代替アプローチ: 親ディレクトリのチェック
より信頼できる方法には、ファイルの代わりに親ディレクトリの正規パスを調べることが含まれます。自体。このアプローチは、シンボリック リンクがファイル レベルではなくディレクトリ レベルで解決されるという事実に由来しています。したがって、親ディレクトリとファイルの正規パスが一致しない場合は、そのファイルがシンボリック リンクであることを強く示しています。
Apache Commons は、このアプローチを実装する isSymlink という名前のメソッドを提供しています。ファイルを入力として受け取り、それがシンボリック リンクであるかどうかを示すブール値を返します。このメソッドの背後にあるロジックは次のとおりです。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3