Ruby on rails ActionDispatch::Http::UploadedFile中的原始文件名方法是否安全?
Ruby on rails ActionDispatch::Http::UploadedFile中的原始文件名方法是否安全?,ruby-on-rails,Ruby On Rails,ActionDispatch::Http::UploadedFile中的original\u filename方法是否可以安全地在主机系统中保存为文件,而无需对其进行进一步清理?查看源代码,看起来他们不会对文件名进行任何检查,因此除非他们在其他地方进行检查(这将是糟糕的设计,因此与Rails团队不同),真正的问题是:文件名会造成什么伤害?我能想到的唯一可能恶意使用它的情况是: 如果文件名为“”。如果你真的成功地创建了它们,那么很难删除它们。我怀疑Ruby会让你用这个名字保存一个文件,你可以试试看
ActionDispatch::Http::UploadedFile
中的original\u filename
方法是否可以安全地在主机系统中保存为文件,而无需对其进行进一步清理?查看源代码,看起来他们不会对文件名进行任何检查,因此除非他们在其他地方进行检查(这将是糟糕的设计,因此与Rails团队不同),真正的问题是:文件名会造成什么伤害?我能想到的唯一可能恶意使用它的情况是:
但我想说的是,这两种方法都不足以保证在代码库中引入非标准类。我会尝试按给定的名称保存文件,并依靠底层的文件保存API来捕获错误,检查所述错误,并将其报告给用户。它只是转换为utf,但大多数上传程序实现都使用它。