正在处理编码的正斜杠,好像它是未编码的 - Sinatra

时间:2014-06-20 21:10:16

标签: ruby url sinatra

我有像

这样的Sinatra路线
get 'check/:input' do |in|
   ##Do stuff in here
end

但是当我在一个包含正斜杠的输入中输入一个字符串,例如“abcde / 12345”或甚至编码为“abcde%2F12345”时,Sinatra正在考虑我想要达到

check/abcde/12345

我点击标准的Sinatra 404页面。我该如何解决这个问题?我需要输入变量中的斜杠,所以我不能简单地修剪它或类似的东西。任何帮助将不胜感激!!

2 个答案:

答案 0 :(得分:1)

这是rack-protectionpath traversal protection的一部分故意做的。

要禁用它,您可以执行

set :protection, :except => :path_traversal

答案 1 :(得分:0)

这可能就是你要找的东西。在这里回复的人的道具:https://stackoverflow.com/a/529172/78551

基本上你让路由器感到困惑。您需要将其作为单独的输入拉入,并将它们连接回动作。