私の Web アプリケーションでは、次の文字を削除します。
( < ,> ,: ," ,/ ,\ , | ,? ,* )
パストラバーサルを防ぐために、ファイルのダウンロード URL から。
これをバイパスする方法はありますか?
安全ですか?
次のガイドを確認してください: http://msdn.microsoft.com/en-us/library/ff647397.aspxただし、問題に関連する部分は以下で強調表示されています。
ファイル名を入力として受け入れる必要がある場合は、System.IO.Path.GetFileName を使用してファイルの完全な名前を使用します。
また、サイトをさらに保護したい場合:
コード アクセス セキュリティを使用してファイル I/O を制限する 管理者は、中程度の信頼で実行するようにアプリケーションを構成することで、アプリケーションのファイル I/O を独自の仮想ディレクトリ階層に制限できます。この場合、.NET コード アクセス セキュリティにより、アプリケーションの仮想ディレクトリ階層外のファイル アクセスは許可されません。
Web.config または Machine.config で要素を設定することにより、中程度の信頼で実行するようにアプリケーションを構成します。
<trust level="Medium" />