1

誰かが XFS ファイルシステムのすべての不正な文字を提供 (またはリストを教えて) いただけませんか? ファイル名をサニタイズする必要があるアプリを書いています。

編集:

さて、POSIX ファイルシステムでは、NUL 文字、スラッシュ、および「.」を除くすべての文字を許可する必要があります。および「..」ファイル名は予約されています。他のすべての例外はアプリケーション レベルです。ありがとう!

4

2 に答える 2

4

POSIX ファイルシステム (XFS を含む) では、ファイル名にすべての文字を使用できますが、NUL (0x00) とスラッシュ (/; 0x2f) は例外です。

  • NUL は C 文字列の終わりを示します。したがって、ファイル名には使用できません。
  • / はディレクトリの区切り文字であるため、使用できません。
  • .ドット ( ; 0x2e)で始まるファイル名は隠しファイルと見なされます。これはユーザーランドであり、カーネルやファイルシステムの規則ではありません。
  • UTF-8 ファイル名など、従っている規則がある場合があります。その場合、使用する正規化形式を含め、さらに多くの制限があります。

さて、おそらく他のことも禁止したいでしょう。あらゆる種類の奇妙な文字を含むファイル名は、扱うのが楽しくありません. ホワイトリストのアプローチを強くお勧めします。

また、ファイル名を扱うときは..、すべてのディレクトリのエントリに注意してください。それをトラバースして任意のパスを許可したくありません。

出典: Single Unix Spec v. 3、§3.169、「名前を構成する文字は、スラッシュ文字とヌル バイトを除くすべての文字値のセットから選択できます。」

于 2009-03-16T19:20:28.690 に答える
0

ウィキペディアによると、XFSファイルシステムのファイル名ではNUL以外の文字が有効です。もちろん、POSIXは通常'/'、ファイル名のスラッシュを許可しません。これ以外は、国際的なキャラクターを含め、何でも良いはずです。

于 2009-03-16T19:10:48.247 に答える