Веб-сервер: как выглядит этот запрос

Я строю веб-сервер с Python-торнадо. Сервер должен обеспечить своего рода поисковую службу по всем ресторанам в какой-либо стране. Таким образом, логика довольно проста: пользователь вводит ключевое слово и отправляет на веб-страницу, сервер отвечает на некоторые сообщения. Одним словом, это как мини-гугл.

Я также делаю простой журнал.

В журнале я вижу, что большинство запросов выглядит так:

[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

Я не могу понять, как генерируется такой запрос. Например, если адрес моего веб-сервера www.example.com и я посылаю ему запрос get, он должен быть таким: www.example.com/abcd, Но этот запрос не начинается с /, как идет?



Это что-то вроде XSS(межсайтовый скриптинг)? Похоже, кто-то пытался сделать какой-то запрос Cross-Origin через мой веб-сервер. Если я прав, я отфильтрую все ключевые слова пользователя, содержащие <script>, Я прав?

2 ответа

Решение

Мне кажется, что кто-то перепутал ваш сервер с baidu.com. Или ваш сервер имеет некоторые соединения с ними и запрос отскочил к вам из-за плохо настроенного DNS или такого материала. Вполне возможно, что кто-то запрограммировал неверный IP-адрес для baidu.com и вместо этого получил ваш сервер.

Надеюсь, вы знаете, как выглядят HTTP-запросы и что для профессионального веб-сервера недостаточно просто позвонить по IP. Вы также должны посмотреть HTTP-заголовок "Host". Я не знаю, делает ли торнадо это по умолчанию. Но когда заголовок Host не является URL-адресом вашего веб-сайта, вы теряете соединение, и миксы не возникают.

И ты не прав.