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

Ruby on rails 当使用Ruby系统调用时,什么是清理用户输入的正确方法?,ruby-on-rails,system,sanitization,Ruby On Rails,System,Sanitization,我有一个RubyonRails应用程序,它使用X虚拟帧缓冲区和另一个程序从web上抓取图像。我的命令结构如下所示: xvfb run--server args=-screen 0 1024x768x24/my/c++/app{user\u provided\u url} 在rails中进行此调用的最佳方法是什么,以最大程度地保护用户输入?您可能不需要在rails中清理此输入。如果它是一个URL,并且是字符串格式,那么它已经有了正确的转义字符,可以作为URL传递给Net::HTTP调用。也就是说,

我有一个RubyonRails应用程序,它使用X虚拟帧缓冲区和另一个程序从web上抓取图像。我的命令结构如下所示: xvfb run--server args=-screen 0 1024x768x24/my/c++/app{user\u provided\u url}


在rails中进行此调用的最佳方法是什么,以最大程度地保护用户输入?

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

uri = URI.parse(user_provided_url) uri=uri.parse(用户提供的url) 然后可以查询对象的相关部分:

uri.path uri.host uri.port uri.path uri.host uri.port
也许我错了,但为什么不确保给定的字符串确实是一个URL(),用单引号括起来,并转义其中出现的任何单引号(')字符?

谢谢,这就是我需要的!德文——你说潘的回答是正确的;你应该接受它作为答案。