我们应该用Javascript中的encodeURIComponent来封装文件名吗



我接受上传到我的网站的文件。那么,encodeURIComponent文件名是一种安全的做法吗?还是应该使用escape((?还是有必要?

您永远不应该对任何使用escape(除非因为您将信息发送到将使用unescape的东西而被迫使用(

是否需要使用encodeURIComponent完全取决于是否将文件名直接用作URI组件。如果你是,是的,你应该使用它。如果你不是,不,你可能不应该。

例如,当您手动创建查询字符串而不是通过URLSearchParams(通常是更好的做法(创建查询字符串时,

encodeURIComponent获取一个字符串并对其进行转义,以确保安全地插入到URI中,通常用于查询字符串数据。

如果要将字符串插入到URI中,则可以使用它,但可能应该使用URLSearchParams来构造整个查询字符串。

如果你没有在URI中插入字符串,那么你可能不应该使用它


escape已弃用,不应使用。它不适用于Unicode属性。


接受文件的考虑通常更多地沿着";这会意外覆盖现有文件吗"以及";我的文件系统允许这个文件名中的字符吗&";。

有些人更喜欢生成一个全新的文件名(例如,使用guid库(以确保其安全。您可以将原始名称存储在数据库中(此时应通过参数化查询处理转义(。

最新更新