Něco mezi getSanitizedName() a getUntrustedName()

DefenestrationPraha
Člen | 134
+
0
-

V rámci zpracování odeslaného formuláře s uploadem souborů mám dvě možnosti, jak zacházet se jménem. Ta první je getUntrustedName(), u níž je upozornění

A client could send a malicious filename with the intention to corrupt or hack your application.

Ta druhá je getSanitizedName(), která provádí webalizaci jména, čili převede jej na ASCII znaky.

No, jsem v situaci, kdy pomocí takového formuláře zajišťuji upload souborů do cloudu. Na jednu stranu nechci, aby tam někdo nahrál malicious filename, takže nemohu použít getUntrustedName() bez dalších úprav. Ale na druhou stranu chci umožnit Řekovi, aby si tam nahrál soubor s řeckým jménem nebo Arménovi s arménským jménem, a to zase nezajistím pomocí getSanitizedName(), protože to mi převede např. Ελλάδα.txt na Ellada.txt.

Jakou formu sanitizace původního jména byste mi doporučili provést, aby na jednu stranu zachovávala legitimní znaky v jiných abecedách, ale na druhou neumožňovala ohrozit systém?