既然来骗我了,那就站在技术角度给你分析一波这个诈骗信息。

你好呀,我是歪歪。

事情是这样的,前段时间有个人加我微信,说有个文案想要找我帮他们推广一下:

链接点进去后,我一看标题是这样的:

心里就有数了,知道这个相关的内容肯定是诈骗信息。

整个文案的内容大概是这样的:

关键的点在于文案中他提供的二维码和 PC 端投递地址确实是真实的地址:

上面的网页地址打开后确实是"百联集团"在 51job 上的校招投递地址:

包括长按识别二维码,也是跳转到这个地址。

那我是怎么判断这是一个诈骗信息的呢?

因为在这之前,我也接到很多过类似的推广信息,风格都极其类似,都是打着高薪兼职的幌子,然后以知名公司的信息以假乱真。

真到什么程度呢,就和你上面看到的一样,整个内容全是真的,连网站都是真的,甚至这个二维码"有时候"都是真的。

我还记得特别清楚,我第一次接到类似的推广内容是沃尔玛的校招。

文案非常的真,或者说就是真的:

校园招聘、招聘岗位、招聘流程,所有的联系方式、网站地址都是沃尔玛官方的,就是正规校园招聘:

第一次遇到这个文案的时候,说真的,我是半信半疑。

信是因为内容确实看起来没毛病,信息都是真的。

疑就疑在它太真了,和真的一模一样,而如果是真的沃尔玛校园招聘,它还需要我这个小小的号主,用我这点完全可以忽略不计的流量帮它进行校招的推广吗?

不可能,绝不可能。

歪师傅这个人,有一个优点就是有较强的自知之明,所以当时我知道这件事情绝对有问题。

至于具体是什么问题,我也不知道,反正就是心里觉得有猫腻。

别问,问就是身为成熟男人这该死的第六感。

所以当时拒绝了这个合作机会。

也尝试过思考这到底是一个怎么样的套路,但是也没啥思路,就没管了。

后来隔了一段时间,看到其他号主朋友也遇到了这个文案,有警惕性比较高的粉丝留言说扫描二维码后跳转到的是一个客服对话框,类似于这种:

在这个对话框里面,对方会引导你去下载"兼职"所需的 APP。

在看到这个案例的时候,关于里面的套路,我突然一下全部都想明白了。

我给你拆解一下这个套路。

套路

首先,某些中介,会拿着文案去找号主,问能不能进行付钱推广。

一般来说,号主都会检查文案内容,判断是否有风险。

前面我也说了,当号主检查文案的时候,肯定会对文章中的信息进行甄别判断。

拿着文案中的链接打开,发现确实是官方链接,扫描二维码也进的是和官方链接一样的官方网站。

这个时候一般就会认为这个二维码背后对应的就是官方链接,只不过是以二维码的形式展示,方便扫码。

而且文案里面的公司都是知名大公司,比如沃尔玛、饿了么、美团、淘宝、小红书什么的。

有的号主,为了防止是高仿网站,甚至扫码之后还模拟了一遍简历投递的过程:

检查没问题后,谈好合作细节,号主就会按照约定时间进行文案的推广。

而且在号主点击"发布文章"之前,甚至是发文后去检查二维码,都还是跳转官网。

但是,会在某个时间,通常是发文后十分钟左右,扫描二维码突然就变成"客服对话框",然后开始诈骗套路。

比如让你回答几个非常简单的问题,或者说下载一个 APP,然后把截图发给他们。

他们就会让你发收款码,然后给你发个几块钱。

歪师傅亲测"百联"的文案,第一个任务是回答这几个问题:

回答完成就给 3.5 元,我本来想着有 3.5 元的收入也是不错的。但是当我把收款码发过去之后,对方并没有给我钱,可能是号主发现了文案有问题,进行了删除,对方也检测到了,所以不再继续沟通。

按理来说,流程应该是对方给我打 3.5 元,然后说:你需要下载某某 APP,在 APP 里面领任务。

而这个 APP 需要使用他们发过来的链接才能下载到,下载下来的 APP 名称,可能就叫"沃尔玛","百联","亚马逊"什么的,只不过是山寨的。

如果下载了 APP,这就算是第一个阶段完成。

接着会引导你在 APP 里面接单,前几个任务,会给你分配个几块钱的,完成后就会把钱给你打到支付宝。

让用户尝到点小甜头,这算是第二个阶段。

然后,会再次引导你进入一个类似于"专属群"、"接单群"、"任务群"、"抢单群"这样的群,群里面有大几百人,群消息时时刻刻都在刷新,大家聊得不亦乐乎。

时不时的有人说抢到了大单子,收到了大额的任务金,并且把对应的支付宝、微信或者银行流水截图发群里。

这个时候就会有一个客服人员出来说类似于这样的话:我马上要发布另外一个任务了,必须在发布之后 2 分钟完成抢单,并支付 xxx 元才能获得对应的奖金 xxx 元。

2 分钟,就是给你营造一种时间短,要立刻抢,立刻完成任务的错觉。群里也在不停的烘托效果。

如果你去抢了,那么就算是上钩了。慢慢的,后面的任务的奖金可能是成千上万元,但是你需要先支付一笔。

也许前几次你都能拿到几块钱的奖金,但是到后面,比如需要你先支付 2000 元,才能拿到 2500 元的奖励。

当你把 2000 元支付出去,对方会告诉你说:怎么回事,没收到啊?

你说:不可能啊,前面都是这样操作的,一直是对的呢?

对方说:对呀,一直都是对的呢,为什么这次不对呢?你看我这边确实没有。时不时银行那边出问题了,延迟了呀?任务马上就要截至了,要不你再转一次,免得错过这个任务?

你说:但是我明明已经给过钱了呀?

对方说:应该是银行那边的问题,你再转一次吧,之前转错的那笔钱肯定会退给你的。

然后,你开始操作第二次转账。

然而,对方说还是没收到...

就这样拉扯几个来回,你的钱就出去了,少则几千块,多则几十万。

再然后,就没有然后了。

对方下线了,群里也安静了,你开始回过味来了。

你甚至以为刚刚发生的一切是幻觉,是一场梦。

但是,银行卡余额告诉你,都是真的,都已经来不及了。

所以,牢记一句话:

凡是下载APP,接任务刷单的,皆是诈骗。

就这个套路,你说它手段低吧,确实是有一点点水平在的,毕竟能骗到一部分公众号给他进行推广。

你说它手段高吧,最终的诈骗形式还是诱导下载 APP ,接单返利这个老套路。

背后的技术

作为一个技术博主,我也还是简单的解析一下这个诈骗里面的一点点技术的东西。

前面说了,因为站在号主的视野中,整个文案没有任何问题,招聘信息、联系方式都是真的,扫描二维码也跳转的是官网,这足以让一部分人放下防备。

你猜也能猜到了,除了它夸张的标题外,文案中的二维码是唯独有问题的地方。

有的上当的号主在回顾这个事件时候提到了这样的一句话:

同一个二维码两个人扫描的结果居然会不一样,又不是动态码,这你敢信?

一个静态的二维码,不同的人扫描的结果是不一样的,从技术的角度讲,这并不是什么神奇的事情。

也许是套了一个二维码的壳,让你觉得高深莫测,我给你换个说法,你就觉得没那么神奇了:一个短链接,不同的时间去点,跳转的页面是不一样的。

首先,一个静态的二维码一定是对应一个固定的链接,这是由二维码的底层逻辑所决定的。

但是这个所谓的"固定的链接",只是一个入口而已。

既然是个入口,那可以做的文章可就多了去了。

在这个诈骗里面,利用到的原理其实和"短链接"的原理是一样的。

首先,我们看一下关于"短链接"正常的场景。

刚好我前几天收到了这样的一个短信:

其中就有一个短链接,把短链拿出来访问一下,是这样的:

短链最终会跳转到这个地址:

这里也额外插一句:短信里面为什么要用短链呢,放原链接可不可以呢?

可以,但是没必要。

一个是因为对客体验不好,另一个更大的原因是要控制成本。

歪师傅刚好对短信平台有比较深入的了解,所以我知道短信的计费不是按照你发多少条这个维度类进行计费的,而是按照一条短信的具体长度进行计费的。

比如某平台的计费规则就是这样的:

所以,短信内容越长,成本就越高,而且是成倍数的高。

短信内容使用短链,长度短,短信发送的成本就整体下来了。

好,现在我们回到这个"短链"上来。

短链跳转的底层逻辑相信大家也都有所耳闻,核心原理就是利用了"重定向"。

大概就是这么一回事:

这一点我们也可以利用开发者工具进行验证:

访问短链的响应吗是 302,响应里面给了个"Location",对应要跳转的链接。

那么八股文就随之而来了:HTTP 状态码 301 和 302 的区别是什么呢?

  • 301 Moved Permanently:指页面永久性转移,表示为资源或页面永久性地转移到了另一个位置。301是HTTP协议中的一种状态码,当用户或搜索引擎向服务器发出浏览请求时,服务器返回的 HTTP 数据流中头信息(header)中包含状态码 301 ,表示该资源已经永久改变了位置。
  • 302 Found:指页面暂时性转移,表示资源或页面暂时转移到另一个位置。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在 Cache-Control 或 Expires 中进行了指定的情况下,这个响应才是可缓存的。

按照上面的说法,其实我们直接使用 301 响应码是没有任何毛病的,甚至由于是永久性转移,在缓存的作用下,响应还更快一点。

那这里为什么要用 302 呢,或者说为什么市面上能看到的短链跳转响应码都是 302 呢?

因为它们要做"数据分析"这个事情:

数据分析,是除了解决成本问题外,短链另一个核心功能,也是核心卖点。

因为 302 还是会请求到原地址去,所以除了获取短链对应的原链接外,还可以在短链服务器这里做很多数据收集的动作,从而支撑运营人员进行数据分析:

短链大家日常接触的也应该比较多,至少对它有个大概的认知,我就不赘述了。

然后,给大家上个示例代码,你粘过去就能用:

@Slf4j
@RestController
public class TestController {

    /**
     * 基于短链接参数重定向
     */
    @GetMapping("/{shortKey}")
    public RedirectView redirect(@PathVariable("shortKey") String shortKey) {
        if ("123why".equals(shortKey)) {
            //官方活动页面(正常逻辑是程序在数据库中维护了一份shortKey和原链接的映射关系表)
            return new RedirectView("https://activity.juejin.cn/rank/2023?utm_campaign=annual_2023&utm_medium=sms&utm_source=yybm1");
        }
        return new RedirectView("/notFound");
    }

    @GetMapping("/notFound")
    public String notFound() {
        return "没有找到对应页面";
    }
}

把服务在 8085 端口启动起来,然后访问链接:

http://127.0.0.1:8085/123why

可以看到这样的效果:

通过开发者工具,我们也能找到 302 的存在:

这样就算是完成了一个短链跳转到原链接的动作。

在跳转之前,我们还可以做一点统计信息相关的事情:

比如,我这里获取一下访问的浏览器和操作系统类型。发起调用之后,观察控制台输出:

是不是就能做出类似于这样的统计信息:

那么怎么实现前面诈骗中的效果呢:一个静态二维码,即一个短链,不同的时间去点,跳转的页面是不一样的?

跳转的页面其实是你程序控制的,无非在跳转之前加上"满足某某条件之后,跳转指定链接"。

比如这样:

第一次访问的时候,跳转到官方活动主页,第二次扫描跳转到歪师傅的个人拉票页面。之后再扫描,就是诈骗信息。

上个效果图,你可以看到我对同一个二维码扫码三次,三次跳转的页面内容都不一样:

这个效果不就类似于前面的诈骗文案,二维码没有发生任何变化,但是某个时间之前扫码,跳转到官方链接,之后就跳转到客服对话吗?

另外,我在使用草料二维码进行二维码转换的时候,发现这个玩意还有个学名,叫做"活码":

原本把短链转化成静态二维码之后就叫做"活码"了,可以,又学习到一个新名词。

活码,就是诈骗套路背后的技术手段之一。

这个东西的出现,确实是方便运营人员进行数据分析,但是同时它也可以去做一些灰产的业务。

那句话是怎么说的?

技术本无罪,有罪的是人。

另外,也表扬一下微信。前面提到的以"百联"为幌子的诈骗信息,我第二天再次去扫描二维码的时候,发现已经被微信官方拦截了,防止更多的人被骗:

最后,再啰嗦一句。

你看我代码的这个部分:

维护一份shortKey和原链接的映射关系表

这是一句简简单单的话,但是里面的学问可就多了去了。

比如原链接的长度是这么长:

https://activity.juejin.cn/rank/2023/writer/3702810893364350?utm_campaign=annual_2023\&utm_medium=self_web_share\&utm_source=why技术

我怎么才能压缩到和"123why"对应起来呢?

这里面就涉及到各种各样的压缩算法了。

关于"短链的设计"据说现在偶现于面试的场景设计题中,好在网上关于短链系统的设计的文章已经非常多了,如果你不知道其中细节的话,可以去搜搜,学习一下,有备无患。

最后,提高警惕,谨防诈骗。

牢记以下警方提示:

拉票

明人不说暗话,这一部分我想来拉个票。

主要还是为了满足自己的那点虚荣心,也为了方便以后装逼。

从今天到 29 号 18 点之前,每人每天可以在 web 端投两票:

如果你愿意给我投票的话,你可以长按扫码:

然后登录,就可以双击投票了。

或者直接把这个链接复制到浏览器中:

https://activity.juejin.cn/rank/2023/writer/3702810893364350?utm_campaign=annual_2023\&utm_medium=self_web_share\&utm_source=why技术

放心,这肯定不是诈骗链接。

我常常说写文章是非常需要正反馈的,这就是体现正反馈最好的时候了,如果我的文章曾经对你有一丝丝帮助,麻烦花 30 秒时间投我两票,满足我这该死的虚荣心。

抱拳了,老铁。