我有一个Sinatra路由,像
get 'check/:input' do |in|
##Do stuff in here
end
但是当我在:input中输入一个包含正斜杠的字符串时,例如"abcde/12345",甚至编码为"abcde%2F12345",Sinatra认为我试图到达
check/abcde/12345
我打开了标准的Sinatra 404页面。我该怎么解决这个问题?我需要输入变量中的斜杠,所以我不能简单地把它剪掉。任何帮助都将非常感激!! 这是rack-protection
路径遍历保护的一部分。
要禁用它,可以执行
set :protection, :except => :path_traversal
这可能是您正在寻找的。感谢在这里回答这个问题的人:https://stackoverflow.com/a/529172/78551
基本上你混淆了路由器。您需要将它们作为单独的输入拉进来,并将它们连接到操作中。