我刚刚将Rails 4应用程序投入生产,并且我注意到了一些看起来像脚本攻击的形式,主要是针对以.php结尾的URL。他们看起来像这样:
I, [2015-05-11T22:03:01.715687 #18632] INFO -- : Started GET "/MyAdmin/scripts/setup.php" for 211.172.232.163 at 2015-05-11 22:03:01 +0100
F, [2015-05-11T22:03:01.719339 #18632] FATAL -- :
ActionController::RoutingError (No route matches [GET] "/MyAdmin/scripts/setup.php"):
actionpack (4.1.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
我想从这些RoutingError消息中收集您的url,主要是为了为它们设置路由,可能只是不呈现任何内容。
我还想重定向到一个站点,该站点可能会使脚本运行者保持忙碌状态。
无论如何,这是问题。有什么办法可以拦截ActionController::RoutingError来运行一些代码?
奖励问题:有谁知道实际上是否有很多php应用程序可以与上述URL一起分解?
最佳答案
虽然这可能不是一个好主意,但您可以设置“全部捕获”路线,例如
match '*path' => 'your_controller#your_action'
在所有其他路由之后添加,并在 Controller 中做任何您想做的事情,例如登录到文件,根据带有
request.path
的路由对它们进行烦扰等。为了给您带来好处,很多人在Web应用上保留了默认密码,而这些抓取工具会寻找该密码
关于ruby-on-rails - 收集抛出的RoutingError消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30178182/