首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将任意数据传递给rails缓存

将任意数据传递给rails缓存
EN

Stack Overflow用户
提问于 2015-09-16 18:23:20
回答 1查看 157关注 0票数 0

我想知道在rails中直接将任意数据作为缓存名传递是否安全,例如:

代码语言:javascript
复制
Rail.cache.fetch(params[:unsafe_param], expires_in: 2.hours) do
    'foo'
end

我使用的是redis驱动程序,我担心的是对缓存的任何SQL-Injection攻击,这是我必须担心的事情还是驱动程序本身进行了消毒?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-16 18:29:13

这取决于你的用法,但一般的回答是肯定的。这是不安全的,因为Redis没有身份验证的概念。

键只是字符串,所以用户可以遍历大量的param值来读取Redis中的任何内容。此外,它们还会为每个请求将值写入缓存,从而使您面临拒绝服务攻击。攻击策略是通过请求数十亿个密钥,简单地填满Redis所在机器上的所有内存。如果那台机器上还有别的东西,它也会掉下来的。

因此,尽可能多地验证,并且只使用您已经验证并知道是有限的数据来设置键。

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

https://stackoverflow.com/questions/32615961

复制
相关文章

相似问题

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