zoukankan      html  css  js  c++  java
  • 微信域名检测、防封,微信跳转技术揭秘(二) -- 微信跳转揭秘

    前面提到了微信域名的封禁原理和检测手段以及一些基本防范的方案。详见《微信域名检测、防封,微信跳转技术揭秘(一) -- 域名检测原理及防封方案

    要想让地址在微信里不被封禁,或者说 尽可能的存活时间久一点,那么需要注意以下几点:

    1、微信里的入口域名最好用备案域名。并且要加白名单
    2、不要QQ和微信同时用一个链接去推广
    3、网站内容 关键字、描述 图片等,不能出现敏感词
    4、屏蔽举报按钮(此方法失效,尝试过,但是对于现在的微信而言没用.. 还是可以举报)
    5、结合微信超级跳转技术,利用大站的跳转漏洞,使用CDN,删除跳转来源等等.. 尽可能提高Url在微信里的存活时间,

    这次我们就主要看看微信跳转的实现方式。

    现在在百度上搜索微信跳转,出来一大堆收费的系统,简言概括以下就是以下两种形式:

    一、微信中点开链接或者扫码,直接跳转到外部浏览器打开目标地址

    二、在浏览器中,点击链接,跳转到微信中 打开地址/关注公众号/添加微信好友 等等这些功能

    第二点是从浏览器跳转到微信中,可以进行添加好友、关注公众号等系列操作。比较适用于推广引流等场景。我所涉及的业务跟这个无关,所以这一点我只是看看了解了一下,没有去深究,有兴趣可以网上搜索一下。

    这种的原理也很简单,网页中跳转的链接协议是微信的scheme:

    weixin://dl/business/?ticket=ta428dhj739hg3efe6e 

    唯一关键的地方 就是这个ticket的生成规则了,研究透了这个,就很简单了。

     

    这里主要说一下第一点,在微信里打开链接或者扫码,直接跳转到外部浏览器中打开地址。但是,这种方法 仅限于安卓用户. iOS 无法跳转外部打开

    一般而言,微信防封是和这个微信跳转是息息相关的。也是主要的规避手段。

    先来说一下微信跳转,用外部浏览器打开的原理吧。 其实也很简单,就是利用微信打开文档会跳转到外部打开的原理实现的.

    大家可以用安卓手机,在微信上发一个doc文档或者pdf文件,然后打开试试看?它会跳转到外部浏览器去打开文档。。所以,原理都知道了,那么接下来就好办了吧..

    奉上一段代码片段仅供大家参考:

    var UA = HttpContext.Current.Request.UserAgent;
    // 如果是在微信里访问
    if (UA.ToLower().IndexOf("micromessenger") != -1)
    {
        if (UA.ToLower().IndexOf("android") > -1 || UA.ToLower().IndexOf("adr") > -1)
        {
            //Android端微信里打开页面,则响应文件格式数据,会跳出到外部浏览器来
            Response.ContentType = "application/vnd.ms-word;charset=utf-8";
            Response.AddHeader("Content-Disposition", "attachment; filename="/Content/1.docx"");
            Response.End();
        }
        else
        {
            //ios 或PC,提示外部浏览器打开
            Header.Title = "请在浏览器中打开";
            body.InnerHtml += "<div id="weixinTip" style="z-index: 10000; position: fixed; top: 0; left: 0; background-color: rgba(0,0,0,0.8); height: 100%;  100%;">"
                            + "<p style="text-align: center; margin-top: 20px;"><img src="https://upload.cc/i1/2018/11/02/2LFNtS.png" style=" 84%;max-565px;" alt="请在浏览器中打开" /></p></div>";
        }
    }
    else
    {
        // 若不是在微信里打开,则直接跳转到目标地址
        Response.Redirect(url.ToString());
    }

    利用这个原理,结合前面说的那些规避的手段,基本就能知道那些收费的系统的整个流程了。其实现在市面上很多微信防封的也是用的这种手段,他们对接的大概流程如下:

    1、付费购买他们的服务,他们提供一个专属的后台

    2、需要客户提供一个正常的 微信内可以正常访问的域名(有的也不需要提供,直接用他们的)

    3、后台可以配置推广落地页的地址,配置好后 会自动生成推广二维码和一个短链接。客服会让他们用这个短链接和二维码去推广..

    他们生成的这个短链接,其实就是套了一层,利用客户或者他们自己提供的正常的域名,绑定到自己开发的跳转的小程序上,这个小程序,就是利用上面微信打开跳转的原理实现的。大概流程应该跟下面的差不多:

    最后这一步 生成第三方的短链接 可要可不要,可能是觉得多一层跳转,更安全一些吧。

    好了,微信跳转的原理就是这些,可能表达的不太好,希望还是能看明白是怎么回事吧。本篇就只说一下这个的原理,下一篇再分享记录一下《微信跳转、微信防封系统的实现和设计

  • 相关阅读:
    EduCF-69 Array Splitting (连续子序列,规律)
    Subsequence 单调队列
    HDU
    HDU
    Numpy 切片和索引
    Numpy 从数值范围创建数组
    Numpy 的常用属性 和创建数组
    Numpy 线性代数
    Numpy 矩阵库(Matrix)
    Numpy 创建数组
  • 原文地址:https://www.cnblogs.com/myron1024/p/10870376.html
Copyright © 2011-2022 走看看