我刚刚将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/

10-12 13:40