收集抛出的 RoutingError 消息
Collect RoutingError messages thrown
我刚刚将一个 rails 4 应用程序投入生产,我注意到看起来像是一些脚本攻击,主要是针对以 .[=23 结尾的 urls =].它们看起来像这样:
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 一样被破解?
虽然这可能不是一个好主意,但您可以设置一条 'catch all' 路线,例如
match '*path' => 'your_controller#your_action'
在你的所有其他路线之后并在你的控制器中做任何你想做的事情,比如记录到一个文件,根据 request.path
的路线惹恼他们,等等。
作为奖励:很多人在 webapps 上留下了默认密码,这些爬虫会寻找那个
我刚刚将一个 rails 4 应用程序投入生产,我注意到看起来像是一些脚本攻击,主要是针对以 .[=23 结尾的 urls =].它们看起来像这样:
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 一样被破解?
虽然这可能不是一个好主意,但您可以设置一条 'catch all' 路线,例如
match '*path' => 'your_controller#your_action'
在你的所有其他路线之后并在你的控制器中做任何你想做的事情,比如记录到一个文件,根据 request.path
的路线惹恼他们,等等。
作为奖励:很多人在 webapps 上留下了默认密码,这些爬虫会寻找那个