首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Brakeman:文件名警告中使用的模型属性

Brakeman:文件名警告中使用的模型属性
EN

Stack Overflow用户
提问于 2013-05-14 02:04:44
回答 3查看 2.4K关注 0票数 3

我将文件名设置为'abc_1.pdf‘,其中'1’是模型属性的值。但brakeman扫描仪认为这是安全问题。我需要通过引用带有model属性的文件名来跟踪文件。你能告诉我,解决这个安全问题的正确方法是什么吗?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2020-01-21 22:19:42

请参阅gem所有者的回答here

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

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

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

我猜这意味着如果您确定您的代码是正确的,那么就将这个警告添加到忽略文件中

票数 1
EN

Stack Overflow用户

发布于 2013-05-14 07:22:59

我不知道Brakeman gem,但是你可以使用双射转换将你的引用模型属性附加到文件名上,这样Brakeman就不会担心了。

或者,您可以为您的模型属性生成某种唯一的hashkey,该hashkey与模型属性一起存储在某个地方(否则),这样您以后就可以查找模型属性,然后显示hashkey。

票数 0
EN

Stack Overflow用户

发布于 2013-10-03 19:15:58

您可以在生成文件名时清理模型属性

代码语言:javascript
复制
"abc_#{sanitize(@mymodel.some_attribute)}.pdf"

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16528350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档