【问题标题】:Is it safe to marshal database objects?编组数据库对象是否安全?
【发布时间】:2018-09-18 13:18:10
【问题描述】:

我使用 Ruby on Rails 并希望缓存我从数据库接收到的一些对象。但是,安全是我的首要任务,我不确定编组是否是 JSON 等的最佳选择。

是否存在与解组数据库对象相关的安全风险?是否可以构造这样一个对象,解组将导致远程代码执行?如果是,怎么做?

【问题讨论】:

  • 换个角度思考:除了担心之外,您认为编组您(通过 JSON)什么?
  • @SergioTulentsev 感谢您的回答。我知道数据库会在很多情况下存储用户输入。但是,该数据已经验证并存储为映射到某种数据类型的东西。例如,二进制数据列的解组会导致远程代码执行吗?据我了解,VARCHAR 列不会引起问题,尽管它取决于编组器的实现。我不想盲目地遵循文档,但要衡量风险。
  • 我不明白。如果您声称安全优先级,为什么不采用更简单、无风险的格式?
  • @SergioTulentsev 好的,我想了更多,并获得了启蒙。当然,我可以存储这些对象并且很可能什么都不会发生,但我知道这是一个可能的攻击媒介。所以,我可以完全避免可能出现的问题,而不是把墨菲定律强加给我。谢谢!

标签: ruby-on-rails security serialization marshalling


【解决方案1】:

好吧,我想多了,悟道了。当然,我可以存储这些对象并且很可能什么都不会发生,但我知道这是一个可能的攻击向量。所以,我可以完全避免可能出现的问题,而不是把墨菲定律强加给我。感谢@SergioTulentsev 的耐心等待!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 2011-08-11
    • 2011-03-12
    • 2011-01-28
    • 2017-02-17
    • 1970-01-01
    • 2013-08-13
    相关资源
    最近更新 更多