Brakeman 在使用 Nokogiri 打开用户输入的 URL 时生成命令注入警告



我的rails项目遇到了问题。Brakeman gem 在使用 Nokogiri 打开用户输入的 url 时生成命令注入警告。这是我的代码

    require 'open-uri'
    url = params[:url]
    doc = Nokogiri::HTML(open("#{url}", "User-Agent" => "Ruby/#{request.user_agent}"))

这是刹车员的警告信息

在第 101 行附近的 open(( 中可能的命令注入: open("#{params[:url]}", "User-Agent" => ("Ruby/#{request.user_agent}"((

有谁知道可以解决刹车员警告的解决方案?谢谢!

您收到此警告是因为open可以打开很多东西,URL只是其中之一。如果有人发送了|rm -rf /的"url",那么您将陷入一段糟糕的时光,因为前导|字符表示"使用 shell 打开并获取输出"。

这个警告很严重。注意它,不要open发送任意参数。如果您只想获取URL,请使用像Faraday这样的HTTP库来可靠,安全地执行此操作。 open-uri是一个快速而肮脏的黑客,可能会给您带来麻烦。

相关内容

  • 没有找到相关文章

最新更新