zoukankan      html  css  js  c++  java
  • host头攻击

    一、问题源起

      HTTP1.1规范中在增加了HOST头信息,用于存储服务端与客户端的路由信息。

      例如:

        Request的Header里就有一个标名请求,它是用来记录服务端网站域名的。

        如果前端或者后台正好用到这个值,比如jsp的

          String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort();

        那么黑客就可以通过修改HOST里域名值以达到攻击的目的。

          比如request.getServerName()改成:www.baidu1.com,这样页面内引用后请求就会被转接了。

    二、解决思路

      主要解决方案主要分为两个:

      1、不用HOST头的东西

      2、防止“敌方”篡改这部分信息

      3、使用加密等手段,使得篡改成本高到无以复加

    三、解决方案

      

    1、nginx代理强制指定header内容,例如:

    // nginx修改ngnix.conf文件

      server {
        ...
        server_name www.abc.com; 
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        ...
      }

     

    2、Apache,修改httpd.conf文件,指定ServerName,并开启UseCanonicalName选项。

    3、Tomcat,修改server.xml文件,配置Host的name属性。

    参考来源:

    https://blog.csdn.net/u012903926/article/details/81702224

    https://www.jianshu.com/p/690acbf9f321

  • 相关阅读:
    PHP字符串
    PHP第四章数组2
    oop soa cbd
    spring 时间组件
    IReport 常见问题整理
    maven 与 jenkins 集成的时候,打包出现错误处理
    Mybatis 传递参数中的_paramter 的理解
    JS 之表单特殊控制
    JQuery 中设置AJAX 的全局函数
    spring + ehcache 整合
  • 原文地址:https://www.cnblogs.com/chendeming/p/11598267.html
Copyright © 2011-2022 走看看