用于文件名警告的模型属性



我正在设置文件名,如'abc_1.pdf',其中'1'是模型属性的值。但刹车员扫描仪认为这是安全问题。我需要通过引用带有模型属性的文件名来跟踪文件。请问解决这个安全问题的正确方法是什么?

谢谢。

查看宝石所有者的回答

Brakeman假定数据库中的任何信息都有潜在的危险。这可能不是真的-也许在您的应用程序中,文件名中使用的值不能由用户设置。此外,您的应用程序可能会确保清除或限制值,而这是Brakeman无法知道的。Brakeman只能对潜在的危险代码发出警告,这意味着总是会有一些误报。

据我所知,当使用不可信的输入时,没有标准的方法可以安全地从Rails访问文件。危险值包括";和"/";可用于目录遍历攻击。

恐怕我不能告诉你如何解决这个问题,因为这取决于你的应用程序,你必须确定它是否实际上是一个可利用的漏洞。对不起!

我猜这意味着添加这个警告到忽略文件如果你确定你的代码

我不知道Brakeman gem,但您可以使用双目标转换将引用模型属性附加到文件名,因此Brakeman不担心。

或者您可以为您的模型属性生成某种唯一的哈希键,该哈希键与模型属性一起存储在某处(其他地方),以便您可以稍后查找模型属性,然后显示哈希键。

您可以在生成文件名

时清理模型属性
"abc_#{sanitize(@mymodel.some_attribute)}.pdf"

我认为我们可以找到更好的解决方案,如果你张贴确切的代码示例。

相关内容

  • 没有找到相关文章

最新更新