2017-06-25 13 views
0

私はPython-tornadoでWebサーバーを構築しています。サーバーは、一部の国のすべてのレストランに関する一種の検索サービスを提供することです。したがって、ロジックは非常に単純です:ユーザーがキーワードを入力してWebページに送信すると、サーバーはいくつかのメッセージを返信します。言い換えれば、それはちょうどミニgoogleのようなものです。Webサーバー:このリクエストはどのように表示されますか

また、簡単なログを作成します。ログで

、私がリクエストのほとんどは、このようにしていることがわかります。

[I 170625 19:23:12 web:2063] 200 GET /images/icon-language.png (116.31.83.132) 0.88ms 
[I 170625 19:23:12 web:2063] 200 GET /index?type=Sight&key=Bol%20content (116.31.83.132) 10.05ms 
[I 170625 19:30:30 web:2063] 304 GET/(116.31.83.132) 0.87ms 
[I 170625 19:30:44 web:2063] 200 GET/(116.31.83.132) 0.78ms 
[W 170625 19:30:51 web:2063] 405 POST/(116.31.83.132) 1.20ms 
[W 170625 19:31:00 web:2063] 405 POST/(116.31.83.132) 0.63ms 
[I 170625 19:31:22 web:2063] 200 POST /index (116.31.83.132) 0.89ms 
[I 170625 19:31:42 web:2063] 200 GET /index (116.31.83.132) 0.62ms 
[I 170625 19:31:49 web:2063] 200 GET/(116.31.83.132) 0.78ms 
[W 170625 19:31:57 web:2063] 404 GET /abce (116.31.83.132) 0.65ms 

しかし、私の驚きに、以下のようにリクエストの数があります

[W 170625 18:43:41 web:2063] 404 GET http://baidu.com/ (106.2.125.215) 0.60ms 

私はこのような要求がどのように生成されるのか理解できません。 たとえば、私のWebサーバーのアドレスがwww.example.comで、get要求を送信する場合は、次のようにする必要があります。www.example.com/abcd。しかし、このリクエストは/で始まっていません。



これは、XSS(クロスサイトスクリプティング)のいくつかの種類ですか?誰かが私のWebサーバーを介していくつかのCross-Originリクエストをしようとしていたようです。私が正しいとすれば、<script>を含むユーザーのすべてのキーワードをフィルタリングします。私は正しい?

答えて

1

誰かがあなたのサーバーをbaidu.comと混在させているようです。またはあなたのサーバはそれらといくつかの接続を持っており、DNSなどの設定が不適切なためにあなたにバウンスを要求します。 誰かが誤ってbaidu.comのIPアドレスをプログラミングし、代わりにあなたのサーバーを持っている可能性があります。

私は、HTTPリクエストがどのように見えているか、そしてプロプライエタリWebサーバではIPを呼び出すだけでは十分ではないことを知って欲しい。あなたは "Host" HTTPヘッダーも見なければなりません。私は竜巻がデフォルトでこれを行うかどうかわからない。しかし、ホストヘッダーがあなたのウェブサイトのURLでない場合は、接続を切断し、ミックスは発生しません。

あなたは間違っています。 <スクリプト>は、HTTPプロトコルのサーバー側とは関係がありません。そのため、直接的な影響はありません。 HTMLとJSをHTTPと混在させないでください。彼らはHTTPの最も普通の転送がHTMLページとJSスクリプトであるということだけを共通して持っています。

Ow、BTW、HTTPヘッダー "User-Agent"からの情報をログに含めることは賢明です。whoisなどのサービスを使用して、誰かがあなたにどの程度接近するかを確認できます。

1

公開されているプロキシのスキャンが表示される可能性があります。他のサイトを閲覧するためにあなたのサーバーを悪用する可能性があるかどうかを誰かが見ています。 Pythonで明示的に行う必要はありません。

これは通常、ツールを使用してGET-request directlyを発行することによって行われます。それは広告のための一般的なプラクティスです。

OSSECのようなものをインストールすると、一日中、さまざまなことをあなたのウェブサイトに無理やり強要することになります。

ファイアウォールルールを設定することができます。とにかく、それは要求を止めることはありませんが、少なくともサーバーのログまでは行かないでしょう。そして、あなたの主な問題がログを膨らませ、自分のサーバである場合は、Baiduを常にログから除外することができます。 (私は個人的にこれを行うのではなく、単にオプションだと指摘しています)。しかし、検索エンジンは飽きることはありません。

関連する問題