专栏首页业余草Java HTTP Host 头攻击原理以及如何防御

Java HTTP Host 头攻击原理以及如何防御

很对微信群里的网友,我都称他们为老铁,从来不称兄道弟的,因为我觉得不真实。不向某东,说一套做一套。

其实你只要认真对待大家,大家都会看在心里,你们说是不是!

对于 Java 程序员来说,一个服务器上跑多个程序是非常常见的现象。

但是这样做后会有一个问题,那就是容易造成 Host 头攻击。这也是之前微信群里一个网友遇到的问题。今天我在这里给大家扯一扯。

host 头(host header或称主机头)攻击,非常常见。比如,在 jsp 中,我们通常可能存在类似下面的代码。

上面的几种加载路径,背后都是通过 host 取得 url 地址,再拼接上固定的内容。

这个时候,假如我把你的 host 头给改掉了,比如改成我的 www.xttblog.com。然后这时你在加载的 js 文件,可能就来源于我的网站中已做好陷阱的 js 文件了。

这样,黑客就能拿到你的 cookie、用户名、密码等关键数据。这就是著名的 host 头攻击。

更有甚者,在你的网站上放入病毒,挖矿等代码。而你还不知道你被利用了。

那么该怎么解决这类问题呢?很简单,下面我们以 Nginx 为例,只需要修改一下配置文件即可。Apache 我就不举例了。

添加一个默认 server,当 host 头被修改匹配不到 server 时会跳到该默认 server,该默认 server 直接返回 403 错误。

重启 nginx 即可。

除了这种做法,也可以在目标 server 添加检测规则。比如下面的 if 判断配置。

另外,在 Tomcat 的配置文件,我们也可以直接配置 Host 的 name 为具体的 ip 地址,不要配置 localhost。

说白了,这个漏洞是因为你使用了 Host 而没验证它。

目前,绿盟、burpsuite、360 等工具都可以对这一漏洞进行检测!

原文链接:https://www.xttblog.com/?p=3895

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • jquery顶部固定层下拉导航

    最近有人在论坛里讨论怎么制作导航菜单!我关注了一下,这里就写了一个简单的demo。供大家参考。代码如下:

    业余草
  • BAT 面试 Elasticsearch 必会知识点总结

    Elasticsearch 是上市公司 Elastic 开源的一个产品。而 Elasticsearch 支撑了整个 Elastic 公司的大约 50 亿美元的市...

    业余草
  • jQuery Mobile中jQuery.mobile.changePage方法使用详解

    jQuery.mobile.changePage方法用的还是很多的。作为一个老手,有必要对jQuery mobile中实用方...

    业余草
  • python监控系统资源

    py3study
  • 使用MyBatis框架

    2. 框架其实是一个半成品,以框架为例,连接数据库使用的驱动,url,用户名,密码等必须要告诉框架的

    wolf
  • spring data mongodb 代码连接数据库方式

    平时我们用spring data mongodb都是采用xml配置的方式来链接数据库 但是往往有的时候需要用代码的方式来实现。 比如说我们有可能要同时操作多个d...

    猿天地
  • 解决Hexo博客文章置顶问题

    zhwhong
  • PostgreSQL WAL 再深入 base on pg 11

    WAL 机制 write ahead log ,在 PG 中是很重要的,关于数据库的安全和性能都会和 WAL 有牵扯。

    AustinDatabases
  • Python partition使用技巧

    简单、
  • Java集合--List源码

    贾博岩

扫码关注云+社区

领取腾讯云代金券