我在我的Rails应用程序中遇到一个例外,我不知道如何捕获。这是堆栈跟踪:
ArgumentError: invalid %-encoding (%26%20allcfgconv%20-C%20voip%20-c%20-o%20-%20../../../../../var/tmp/voip.cfg%20%2)
/usr/lib/ruby/2.1.0/uri/common.rb:901 in "decode_www_form_component"
/gems/rack-1.5.2/lib/rack/utils.rb:42 in "unescape"
/gems/rack-1.5.2/lib/rack/utils.rb:94 in "block (2 levels) in parse_nested_query"
/gems/rack-1.5.2/lib/rack/utils.rb:94 in "map"
/gems/rack-1.5.2/lib/rack/utils.rb:94 in "block in parse_nested_query"
/gems/rack-1.5.2/lib/rack/utils.rb:93 in "each"
/gems/rack-1.5.2/lib/rack/utils.rb:93 in "parse_nested_query"
/gems/rack-1.5.2/lib/rack/request.rb:373 in "parse_query"
/gems/rack-1.5.2/lib/rack/request.rb:188 in "GET"
/gems/rack-1.5.2/lib/rack/request.rb:225 in "params"
/gems/remotipart-1.2.1/lib/remotipart/middleware.rb:12 in "call"
问题是请求没有命中应用程序的代码,框架抛出了异常。这似乎是一种攻击。
如何防止它发生?
答案 0 :(得分:0)
我也受到了这些攻击。这非常令人沮丧,因为它们会触发整个团队看来的自动消息,包括一些非技术人员。他们变得担心,因为,#哦;不,生产中有些东西被打破了!"
我做了什么(我希望有人建议一个更好的解决方案)是在routes.rb文件中为每种新攻击制作自定义条目,将其引导到不执行任何操作的控制器。