Web アプリのユーザーが URL を入力し、その URL を curl に渡せるようにしたいと考えています。私は、Net::HTTP や open-uri よりも curl を使用したいと考えています。しかし、これはセキュリティ上のリスクをもたらします。URL 文字列をチェックしてインジェクション攻撃を防ぐ最善の方法は何ですか?
インジェクション攻撃をチェックするために、次のような正規表現を使用することを考えています。
raise "possible injection attack" if url =~ /[\s']/
そのチェックが成功した場合は、そのようにcurlを呼び出すだけです
html = `curl '#{url}'`
これで十分安全ですか?