该站点是用 Flask 编写的。它经常收到类似的请求GET *левый сайт* HTTP/1.1。Flask 有些会抛出 404,有些会抛出 200。让我害怕的是,它会抛出 200 响应这种奇怪的请求。更多这样的请求来了:178.149.185.231 - - [06/Sep/2017 22:19:37] code 400, message Bad HTTP/0.9 request type("îV\x9dÿÐG\x0fÔc\x0fXØ$\x1aõ\x02Áju\x9eÖR']\x1bõ")Èzæ»" HTTPStatus.BAD_REQUEST -
我是否应该害怕这样的请求以及如何摆脱它们?
日志条目看起来像是在尝试将您的服务器用作代理。
带有链接(绝对 URI)而不仅仅是路径的请求只能由 http 客户端发送到代理,尽管 HTTP/1.1 的 rfc 没有明确禁止带有链接的请求(rfc 7230 absolute-form):
鉴于我们已经有了一个工作方式不同的 HTTP/2的下一个版本,由于与想象中的未来版本的兼容性,支持链接而不是路径并不是一个好主意。
如果链接中的域与预期的
Host标头匹配,是否返回 200 响应(不应发出 dns 请求),是否为“左域”返回 400 响应或只是终止连接取决于您(rfc 7230 ):不同的服务器表现不同。例如,可以将 nginx 配置为拒绝此类请求:
if ($request ~* ^https?://) { return 444; }.Flask 内置服务器不设计为直接暴露在互联网上:“Flask 的内置服务器不适合生产。” 看看还有哪些其他选项可用于部署使用 flask 编写的 Web 应用程序。