Сухой товар! Антиоператорский угон

внешний интерфейс программист Безопасность DNS

1. Что такое угон авианосца

Что такое оператор:

Под операторами понимаются те интернет-провайдеры, которые предоставляют услуги широкополосного доступа, в том числе три крупных оператора China Telecom, China Mobile и China Unicom, а также некоторые мелкие операторы, такие как Great Wall Broadband и Gehua Cable Broadband. Операторы предоставляют самые основные сетевые услуги и держат ключ к физической двери пользователей.В настоящее время угон операторами является обычным явлением.

Возьмите угнанный каштан:

Метод угона:

У операторов есть три распространенных способа причинить зло, а именно перехват DNS, перехват HTTP и перехват HTTPS:

Перехват DNS: Этот вид перехвата перенаправит вас на другие веб-сайты.Это принцип фишинговых веб-сайтов, с которым мы знакомы. Но из-за своей нелегальности она сейчас строго регулируется, что бывает редко.

Перехват HTTP: хотя перехват DNS регулируется, перехват HTTP все еще существует! IP-адрес доменного имени, разрешенный вашим DNS, остается прежним.Когда оператор узнает, что ваш запрос является HTTP-запросом, он вставит какую-то странную рекламу (например, какие-то баннеры, буйки и даже даст вам позицию вашего продукта) Hijacked WTF...) и это явление очень распространено. Если вы не верите в это, вы можете попробовать открыть веб-страницу наугад. Если вы внимательно посмотрите, вы найдете несколько маленьких хвостов. Это HTTP hijacking.

Перехват HTTPS: безопасный протокол передачи гипертекста, шифрование данных. Может ли это также перехватить? Ответ - да! Есть два способа угона:

  1. Поддельные сертификаты, установить корневой сертификат поддельного сертификата в систему пользователя вирусом или другими способами (реже)
  2. У агента также есть сертификат клиента и закрытый ключ, или, если клиент и агент не проверяют законность при аутентификации, они могут обмениваться данными с нашим сервером через агента (подробнее)

Примечание. Использование кода из этой статьи определенно позволит вам найти перехват HTTPS (при условии, что используется https)

2. Антиоператорский захват

Если быть точным, то это перехват типа анти-скрипт и iframe инъекции, более 95% из них являются методами перехвата, потому что перехват DNS строго контролируется.

Как оператор угнал, в инете информации много, тут насиловать особо нечего

Вот код защиты от взлома:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>防劫持代码测试</title>
  <script>
    console.log('发生劫持,初始化就直接置顶的流氓行为,暂无法防御,但可以通过埋点记录LOG,向工信部投诉!!');
  </script>
  <!-- 防劫持 -->
  <script shendun-eddy>
    /**
     * @note 防劫持代码
     * @key MutationObserver 提供了监视对DOM树所做更改的能力 
     */
    (function() {
      var srcFilterTags = ['script', 'iframe'];
      // 域名白名单 可以加多个
      var whiteList = ['zeptojs.com'];
      var whiteListReg = [];

      // 正则匹配
      whiteList.forEach(function(wl) {
        var wlReg = new RegExp('/.+?\/\/' + wl + '|\/\/' + wl + '|.+?\.' + wl + '|^' + wl);
        whiteListReg.push(wlReg);
      });
      // 白名单助手
      var inWhileList = function(addedNode) {
        // shendun-eddy 是script的白名单标签
        if (addedNode.src === '' && addedNode.getAttribute('shendun-eddy') !== null) {
          return true;
        }

        var isInWhiteList = false;

        whiteListReg.forEach(function(wlReg) {
          if (wlReg.test(addedNode.src)) {
            isInWhiteList = true;
            return false;
          }
        });

        return isInWhiteList;
      };

      // dom观察器
      var mutationHandler = function(records) {
        records.forEach(function(record) {
          Array.prototype.slice.call(record.addedNodes).forEach(function(addedNode) {
            srcFilterTags.forEach(function(tagName) {
              // 标签匹配 白名单匹配
              if (addedNode.tagName === tagName.toUpperCase() && !inWhileList(addedNode)) {
                addedNode.remove();
              };
            });
          });
        })
      };

      // 核心 - MutationObserver 提供了监视对DOM树所做更改的能力
      // 优点 - 动态监听是否有非法的 iframe 和 script 代码
      // 缺点 - 无法查找头部直接插入的代码
      var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
        observeMutationSupport = !!MutationObserver;
      var html = document.getElementsByTagName('html')[0];

      if (observeMutationSupport) {
        new MutationObserver(mutationHandler).observe(html, {
          'childList': true,
          'subtree': true
        });
      }

      // 唯独直接加载的不能remove掉,异步加载的都能remove掉!!
      // ***  记录头部的script,通知工信部 ***
      var eleList = document.querySelectorAll('script');
      var len = eleList.length;
      for (var i = 0; i < len; i++) {
        // 遍历操作
        if (!inWhileList(eleList[i])) {
          // do sth 这里的删除虽然已经晚了,因为头部同步JS已被执行,删除操作意义不大,但可以统计被劫持的代码是什么,记录好LOG 通知工信部
          // sendLog
          eleList[i].remove();
        }
      }
    })();
  </script>
  <script>console.log("劫持1");</script>
</head>
<body>
  <div>防劫持代码测试</div>
  <div class="father">
    <div class="bro">
      <div class="xiongdei">
        <script src="https://mt.cnzz.com/js/hdpi_canvas.js"></script>
      </div>
    </div>
  </div>
  <script src="http://zeptojs.com/zepto.min.js"></script>
  <!-- 这里执行了 console.log('哎哟,我来劫持你了...'); 虽然访问了这个script, 但被remove了不会执行-->
  <script src="http://yun.dui88.com/qiho-h5/jqg/shendun_test.js"></script>
  <script>console.log("劫持....");</script>
</body>
</html>


После добавления кода захвата оператора, скрипты или фреймы, которых нет в белом списке, и теги безопасности (shendun-eddy) будут удалены.

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

кОблако.К 88.com/futures - также 5/национальная...Например, код выглядит следующим образом:

;(function(){
  console.log('哎哟,我来劫持你了...');
})()

Основные функции

MutationObserver() создает и возвращает новый MutationObserver, который вызывается при изменении указанного DOM.

Конкретные параметры и использование портала:developer.Mozilla.org/this-cn/docs/…

совместимость

Совместимость со всеми браузерами 92,79%, совместимость мобильного телефона выше, а в код добавлена ​​защита, так что смело пользуйтесь!

3. Резюме

Показатели угона авиаперевозчиков в настоящее время составляют от 3% до 25%, и они повсюду.

Чтобы также просматривать пользователя в чистой и безопасной среде, нам необходимо принять меры предосторожности.

  1. HTTPS для всего сайта, может запретить его часть
  2. Добавьте код защиты от захвата оператором, чтобы предотвратить захват большинства инъекций.
  3. Запишите журнал, зафиксируйте доказательства и подайте жалобу в Министерство промышленности и информационных технологий.