8

サーバーから次の2つのエラーが発生し続けます。これらは潜在的なターゲットを探しているボットであると想定しましたが、なぜこれらが発生するのかを具体的に知っている人はいますか?私はSslRequirementプラグインを使用して、ログイン/サインアップページへのすべてのヒットがSSLにリダイレクトされるようにしているので、rootへのこれらの奇妙なhttpsリクエストはすべて通常のhttpにリダイレクトする必要があります。


ActionController :: UnknownHttpMethodがapplication#indexで発生しました:終了、受け入れられたHTTPメソッドは、get、head、put、post、delete、およびoptionsです。

/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controller/request.rb:35:in `request_method '

  • PATH_INFO:/
  • REMOTE_ADDR:99.19.208.249
  • REMOTE_PORT:6376
  • REQUEST_METHOD:接続
  • REQUEST_URI:/
  • SERVER_PORT:443
  • SERVER_PROTOCOL:HTTP / 1.0
  • SERVER_SOFTWARE:Apache

ActionController :: UnknownHttpMethodがapplication#indexで発生しました:CONNECT、受け入れられたHTTPメソッドは、get、head、put、post、delete、およびoptionsです。

/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controller/request.rb:35:in `request_method '

  • HTTPS:オン
  • HTTP_X_FORWARDED_PROTO:https
  • PATH_INFO:/
  • REMOTE_ADDR:91.209.196.76
  • REMOTE_PORT:50751
  • REQUEST_METHOD:終了
  • REQUEST_URI:/
  • SERVER_PORT:443
  • SERVER_PROTOCOL:HTTP / 0.9
4

5 に答える 5

0

接続:http ://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.9

QUITは通常、「接続を閉じる」ことを意味します。

于 2009-12-13T06:43:46.567 に答える
0

次のようにサーバーに接続しようとする試みがいくつかあることに気付きました.QUITで終了していることがわかります...

198.20.87.98 - - [22/Dec/2015:21:43:42 -0800] "GET / HTTP/1.1" 444 5666 "-" "-"
198.20.87.98 - - [22/Dec/2015:21:43:42 -0800] "GET /robots.txt HTTP/1.1" 444 5666 "-" "-"
198.20.87.98 - - [22/Dec/2015:21:43:42 -0800] "GET /sitemap.xml HTTP/1.1" 444 5666 "-" "-"
198.20.87.98 - - [22/Dec/2015:21:43:58 -0800] "quit" 405 5461 "-" "-"
  • ちなみに、私のサーバーは 444 を返しますが、これは正当な HTTP コードではありません。それはNO RESPONSEを意味し、 「エージェント文字列」が空であるため、私はそうします。

IPアドレスを調べてみると、インターネット上のものを検索する検索エンジンが見つかりました。それ自体に侵入しようとしているハッカーではありません。(悪意はないようです。)彼らがチェックしているアプリケーションのいくつかは QUIT を理解する必要があると思います。したがって、ロボットとして、CONNNECT や QUIT などの奇妙なコマンドのように見えるものを試してみたいと思うのは理にかなっています。コマンドが公式の HTTP コマンドでなくても、アプリケーションがサポートできるコマンドに実際の制限はありません。

アプリケーションがこれらのメソッドを理解していない場合、何も起こらないので、あまり気にしないでください。

アプリケーションがこれらのメソッドを受け取る場合、最初に少し何か書いてメソッドを取得し、GET や POST (および DELETE や PUT など、サポートしている他のもの) と比較し、これらのいずれにも一致しない場合は、 405 エラー コードで応答します:「メソッドは許可されていません」。

https://www.rfc-editor.org/rfc/rfc7231#section-6.5.5

アプリケーションを変更できず、それが CONNECT / QUIT ヒットに反応するかどうかわからない場合は、Apache2 の mod_security などのセットアップの使用を検討できます。

于 2015-12-28T05:50:54.573 に答える
0
# Avoid annoying ActionController::UnknownHttpMethod exceptions like:
#
#   ActionController::UnknownHttpMethod) "CONNECT, accepted HTTP methods are get, head, put, post, delete, and options"
#
# Install this file in app/metal and these requests will receive a 405
# "Method Not Allowed" status and will be logged under `info'.
class IgnoreUnknownHttpMethod
  def self.call(env)
    [
     if ActionController::Request::HTTP_METHODS.include?(env["REQUEST_METHOD"].downcase)
       404 # Not Found
     else
       Rails.logger.info("Ignoring unknown HTTP method; #{env.inspect}")

       405 # Method Not Allowed
     end, {"Content-Type" => "text/plain"}, []]
  end
end

クレジットhttps://gist.github.com/remvee/600569

于 2014-10-17T18:46:13.303 に答える