使用校验文件的方式来验证域名的所有者

今天小猪在查看小程序的文档时发现现在微信支持将传统二维码的微信扫描事件跳转到小程序了。

具体文档为:https://mp.weixin.qq.com/debug/wxadoc/introduction/qrcode.html

大概意思就是很多二维码是在微信小程序出生之前就已经出生了,所以原二维码可能并没有做一些特殊的设置来让微信来进行处理。如果当时的二维码的内容是一个网页地址,那么现在开发者可以设置一些规则将使用“微信扫一扫”功能扫描该二维码时跳转到指定的小程序而不是之前的网页地址了。

惊喜不惊喜?意外不意外?

不得不说微信功能越来越多。

小猪没有切实的进行设置体验,不过在看文档的过程中就在思考一个问题,微信的平台是怎么来设置权限问题的,也就是如果我有一个小程序,我设置了域名规则为www.baidu.com www.google.com这些域名都跳转到我的小程序那岂还了得?看到了每个小程序智能设置10个规则,心想这在一定程度上能够减少乱使用规则的问题,但仔细想想还是不能完全解决小猪提出的问题。
好在看到后面有了进一步的验证规则

那就是需要验证域名是否属于当前开发者,使用的方法就是《校验文件》

下载随机校验文件,并将文件上传至服务器指定位置的目录下,方可通过所属权校验。
验证文件放置规则: 放置于URL中声明的最后一级子目录下,若无子目录,则放置于host所属服务器的顶层目录下。请根据页面提示将验证文件放置在指定的目录下。

当前验证域名的很多厂商都使用了类似这种方法来验证域名。一般步骤为:
1. 用户填写域名信息
2. 下载制定的验证文件
3. 将验证文件上传到自己的域名所在的服务器上面,使用域名能够正确的访问到该验证文件
4. 点击某按钮来进行验证

整个过程需要用户做的事情就是将验证文件上传到你的域名下以便能够访问到该验证文件,以证明该域名你有相应的权限。相比需要将指定的二级域名解析到特定的地址来讲效率可以提升很多,毕竟解析二级域名还要看域名托管商的效率。

而从平台的角度来讲无非也就是需要做几个事情:
1. 动态的根据用户和域名信息来生成校验文件,可能需要涉及一些加密的信息。
2. 当用户表示已经上传完成的时候提供一个按钮给用户来点击,用户点击的时候生成一个http请求来请求域名地址看看能不能正确的访问到校验文件。
3. 访问成功之后与之前自己生成的信息进行比对,比对成功则认为该流程成功结束。

想想该过程因为校验文件是平台侧生成,http请求也是由平台发起的,所以想要破解该过程还是有一点复杂和难度的。
记得百度平台;腾讯的各种平台;站长之家等貌似都会提供这种方式来进行域名的验证。