Django项目:垃圾邮件机器人在我的Sentry上到处都是垃圾邮件.io帐户(无效的HTTP_HOST头)



我有一个django项目运行在生产与gunicorn。它与哨兵相连。IO用于舒适的错误记录。

有很多spambots导致Invalid HTTP_HOST header,因为他们试图通过ip访问它,这是不允许的django的ALLOWED_HOSTS设置。那些垃圾邮件机器人填满了我的哨兵计划限制,过了一段时间,其他错误不再被记录。

什么是一个简单而优雅的解决方案?我已经考虑过一些,但它们都有警告:

  1. 在早期阶段过滤掉带有错误主机的请求,例如nginx -好主意,但我希望能够配置允许的主机在django设置
  2. 抓住错误Invalid HTTP_HOST header好主意,但这样我就不会在sentry
  3. 中有无效的http主机头错误处理。
  4. 我想记录每个主机和url每天一个错误或类似的东西-但然后我必须编码一个自定义限速器,它持续信息。似乎是一个复杂的解决方案

你对此有何看法?你还有别的主意吗?最优雅、最简单的解决方案是什么?

你可以配置Nginx来阻止任何带有Invalid HTTP_HOST头的请求

server {
listen 80;
server_name example.com;
if ($http_host !~* ^(example.com|www.example.com)$ ) {
return 444;
}
# rest of your Nginx configuration goes here
}

这样,你仍然可以在Django设置中配置允许的主机,同时过滤掉代理服务器上无效主机头的请求。

相关内容

  • 没有找到相关文章

最新更新