使用Ruby系统调用时,清理用户输入的正确方法是什么?

时间:2011-01-26 06:08:57

标签: ruby-on-rails system sanitization

我有一个Ruby on Rails应用程序,它使用X虚拟帧缓冲区和另一个程序从Web上抓取图像。我已经构建了我的命令,如下所示: xvfb-run --server-args = -screen 0 1024x768x24 / my / c ++ / app#{user_provided_url}

使用用户输入的最大安全性在rails中进行此调用的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您可能不需要在rails中清理此输入。如果它是一个URL并且它是一个字符串格式,那么它已经有正确的转义字符作为URL传递给Net :: HTTP调用。也就是说,您可以编写正则表达式来检查URL是否有效。您还可以执行以下操作以确保URL是可解析的:

uri = URI.parse(user_provided_url)

然后,您可以查询对象的相关部分:

uri.path
uri.host
uri.port

答案 1 :(得分:0)

也许我错了,但为什么不确定给出的字符串是否真的是一个URL(URI::parse),用单引号括起来并转义出现的任何单引号(')字符内?