Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 可以使用Ruby$SAFE级别来抵御Rails漏洞的攻击吗?_Ruby On Rails_Ruby_Security - Fatal编程技术网

Ruby on rails 可以使用Ruby$SAFE级别来抵御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漏洞,例如和可能允许用户运行由不受信任的源(XML/YAML参数)构造的任意代码

使用$SAFE=4(比如)是否可以防止此类漏洞攻击?如果是,Rails开发人员是否使用这种安全级别?若否,原因为何


谢谢

当您的整个Rails将$SAFE设置为4时,您将不会发生任何事情。因此,你的应用程序只能提供静态视图。至少这是我很久以前的经验。

受污染的物体和受保护的操作 基本上,安全级别可以归结为保护应用程序不受污染数据的影响,但问题在于细节。书中有一整章论述了各个层次,值得你花时间仔细阅读

Rails应用程序通常需要受污染的数据 一般来说,Rails应用程序通常会邀请受污染的输入。params散列受定义的影响,大多数用户交互依赖于受影响的数据。假定您可以清理输入或使用框架功能来防止,在大多数情况下,您的应用程序仍然需要与用户提供的数据交互才能真正有用

安全权衡和其他考虑 当
$SAFE=4
时,运行Rails应用程序可能有效,也可能无效。坦率地说,我从来没有见过任何人“在野外”使用生产代码。即使可以,您也可能不得不跳过许多障碍,以卸载用户提供的数据,实例化ActiveRecord对象,并执行文件系统写入(例如日志记录或文件上载),这可能不值得进行安全权衡

通过使用较低的$SAFE级别并依靠其他安全最佳实践来实现目标,您可能会得到更好的服务。这真的取决于你想要完成什么。与所有安全控制一样,您的里程数肯定会有所不同