gpt4 book ai didi

ruby-on-rails - 可以使用 Ruby $SAFE 级别来防止 Rails 漏洞的利用吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:56:37 24 4
gpt4 key购买 nike

Rails 漏洞,例如 CVE-2013-0155CVE-2013-0156可能允许用户运行从不受信任的来源(XML/YAML 参数)构建的任意代码。

使用 $SAFE=4(比方说)是否可以防止此类攻击?如果是,Rails 开发人员是否使用这样的安全级别?如果不是,为什么?

谢谢

最佳答案

受污染的对象和 protected 操作

基本上,$SAFE 级别归结为保护应用程序免受污染数据的侵害,但细节决定成败。 Programming Ruby有一整章涉及各个级别,值得您花时间仔细阅读。

Rails 应用通常需要污染数据

一般来说,普通的 Rails 应用程序会邀请受污染的输入。 params 哈希根据定义被污染,并且您的大部分用户交互都依赖于被污染的数据。当然,您可以清理输入或使用框架功能来防止 mass-assignment vulnerabilities ,在大多数情况下,您的应用程序仍需要与用户提供的数据进行交互才能真正发挥作用。

安全权衡和其他注意事项

$SAFE = 4 时,Rails 应用程序可能有用 运行,也可能不运行。坦率地说,我从未见过有人“在野外”使用生产代码来做到这一点。即使可以,您也可能不得不跳过如此多的环节来清除用户提供的数据、实例化 ActiveRecord 对象以及执行文件系统写入(例如日志记录或文件上传),因此可能不值得进行安全权衡。

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

关于ruby-on-rails - 可以使用 Ruby $SAFE 级别来防止 Rails 漏洞的利用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14258719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com