Ruby on rails 可以使用Ruby$SAFE级别来抵御Rails漏洞的攻击吗?
Rails漏洞,例如和可能允许用户运行由不受信任的源(XML/YAML参数)构造的任意代码 使用$SAFE=4(比如)是否可以防止此类漏洞攻击?如果是,Rails开发人员是否使用这种安全级别?若否,原因为何Ruby on rails 可以使用Ruby$SAFE级别来抵御Rails漏洞的攻击吗?,ruby-on-rails,ruby,security,Ruby On Rails,Ruby,Security,Rails漏洞,例如和可能允许用户运行由不受信任的源(XML/YAML参数)构造的任意代码 使用$SAFE=4(比如)是否可以防止此类漏洞攻击?如果是,Rails开发人员是否使用这种安全级别?若否,原因为何 谢谢当您的整个Rails将$SAFE设置为4时,您将不会发生任何事情。因此,你的应用程序只能提供静态视图。至少这是我很久以前的经验。受污染的物体和受保护的操作 基本上,安全级别可以归结为保护应用程序不受污染数据的影响,但问题在于细节。书中有一整章论述了各个层次,值得你花时间仔细阅读 Rail
谢谢当您的整个Rails将$SAFE设置为4时,您将不会发生任何事情。因此,你的应用程序只能提供静态视图。至少这是我很久以前的经验。受污染的物体和受保护的操作 基本上,安全级别可以归结为保护应用程序不受污染数据的影响,但问题在于细节。书中有一整章论述了各个层次,值得你花时间仔细阅读 Rails应用程序通常需要受污染的数据 一般来说,Rails应用程序通常会邀请受污染的输入。params散列受定义的影响,大多数用户交互依赖于受影响的数据。假定您可以清理输入或使用框架功能来防止,在大多数情况下,您的应用程序仍然需要与用户提供的数据交互才能真正有用 安全权衡和其他考虑 当
$SAFE=4
时,运行Rails应用程序可能有效,也可能无效。坦率地说,我从来没有见过任何人“在野外”使用生产代码。即使可以,您也可能不得不跳过许多障碍,以卸载用户提供的数据,实例化ActiveRecord对象,并执行文件系统写入(例如日志记录或文件上载),这可能不值得进行安全权衡
通过使用较低的$SAFE级别并依靠其他安全最佳实践来实现目标,您可能会得到更好的服务。这真的取决于你想要完成什么。与所有安全控制一样,您的里程数肯定会有所不同