open-uriってちゃんと実装しないとなにかと危険な香りがしますな、という話。 Ruby 2.4.0 リファレンスマニュアル module OpenURI 例えば外部のAPIを叩く必要があって として使っていたとする。 フォームから受け取ったパラメータを入れてopen(なんやら)とする場合、そのままなんでもopen()の中に入れるとかなり危険。 例えばこれはフォームに入れたURLにしたがって、そのウェブサイトに行ってなんか取ってくる例。 コードで言うとこんな感じ。 require "open-air" class PagesController < ApplicationController def search @page = open(search_params[:url]) end private def search_params params.permit(:url) end