TrafficArmor是一款很有名的cloak工具(什么是cloak请看前面的文章:什么是cloak),今天来说下他们家20191002新出的self-hosted JavaScript部署的方式。
self-hosted JavaScript部署方式的优缺点
优点
看之前的文章大家知道cloak的部署方式一般是分为javascript加载、javascript跳转、iframe加载、php加载、php跳转、wordpress插件、API这几种集成方式,对于做Facebook投放来说一般是使用php形式来进行部署,cloak官方也推荐此方法,更安全、流量损失更少。但是php部署方式有个弊端就是有些电商程序(Shopify, Wix,Amazon S3, BigCommerce, , Squarespace, ClickFunnels等)或者主机并不支持php,只有选择JS方式了,而JS还又太不安全。并且有些老板或投放人员对于php并不熟悉,每次都需要部署对于他们来说很麻烦,而JS就是一段代码,只要粘贴进去就可以,对于使用来说更方便。现在TA新出的self-hosted JavaScript部署方式就完美的解决了这个问题。而且对于只要支持js就可以来看,很多提供免费二级域名的平台都可以当作安全页来使用,节省了自己每天需要购买大量域名的情况。
这种方式翻译过来就是你自己部署所需要的JS脚本,用自己的域名,而不是大家一起都用官方的,这样即使你的JS所在域名被ban了,也不会影响到其他人或者其他人也不会影响到你,只要换一个域名(不限于根域名,二级、三级域名都可以)又满血复活了。
缺点
首次部署比较麻烦,额外需要一台php主机用来部署,并且跳转效率不如php方式,安全性依然没有php高,点击损失比php大很多,官方本意此方案是个折中方案,如果有条件依然推荐使用php部署方式。
self-hosted JavaScript部署具体步骤
准备阶段
部署自托管JS,一共需要一台php主机(vps或服务器,不要用虚拟主机),两个域名(一个用来绑定php主机,一个用来生成JS脚本代码),Cloudflare账号一个。
部署php主机与域名
php主机具体安装环境以及域名的绑定我就不写了,直接说下如何部署。
你在TA后台创建一个cloak campaign后,会提示让你部署,获得一个压缩包里面有部署用的php文件。
打开php文件,可以看到每次部署生成的php文件是只有这个id是不同的,这里我以sanfenzui这个id举例。
在ta后台campaign lists可以看到这个id就是我们创建cloak campaign后生成的id。
因为每次这个id都会变化,TA官方给了两个解决方案,一个是每次生成的php文件都传上去,用于生成用于粘贴的js代码,另外一个方案是复用首个JS部署方式的php文件。后续我以复用php文件的方案来讲解,因为第一个方式太过于繁琐,已经丧失了JS部署方式的便捷性了。
把php文件上传到php主机的指定位置例如:https://sanfenzui.com/track/index.php ,也可以把php文件的index名字改成其他的,只要自己能记住就可以。这里我们把php文件放到了track这个目录里,这个目录用来后续调用的,要记住。还有大家没必要都使用track这个名字,这里只是举例。
隐藏php主机与域名(可选)
此方法可以不使用,添加上可能更安全。
隐藏的原理就是通过cloudflare这个cdn的加速功能隐藏你上面的真实php域名的ip地址,具体实现是在你使用投放的域名的一个二级域名cname解析到上面你自己的域名上。
例如:
上面是在clouadflare后台你的投放域名的dns标签页进行的设置,如果你的Facebook投放页面不是自有域名,而是平台提供的二级域名,无法在cloudflare进行解析,那就弄个垃圾域名例如:zhuizong.xyz来进行设置,单纯用作生成js代码用。
粘贴代码到各个平台
现在JS代码已经生成了 如果你使用了上面的隐藏功能,那就用zhuizong.xyz替换掉sanfenzui.com。
粘贴这段代码到你需要的平台,可以填写html代码的地方,例如统计代码框即可。
传递id参数到safepage
上面说了,我们要复用php文件,而不是每创建一个cloak就把php传递一次,虽然那样会导致js引用的链接不同,好像会更安全,但是麻烦程度也是明显提高,我们现在来说下通过传递参数来复用php文件。
上面我们创建cloak后生成的id是sanfenzui,如果我们要复用php文件,就需要用新创建的cloak id替换掉这个sanfenzui,替换的方法就是在投放的时候把新cloak的id填写到网址里,例如:投放链接是a.shopify.com/iphone.html 那么就把新的cloak id传递进去就可以了。链接改成a.shopify.com/iphone.html?ad=rtu87463, 问号后面的就是传递的参数和值了,参数为ad,值是rtu87463也就是新建的cloak的id,这个参数可以是任何字母这里只是以ad为例,这样传递的新cloak id会自动覆盖掉php文件里面的id。
进阶玩法
上面步骤基本上是官方的教程我使用过程中的记录,但如果为了更安全还是可以对这个过程进一步优化设置。
第一
可以对php文件进行更改,增加判断referer的功能,只有自己的安全页的来路才会显示正确内容。
第二
不使用php复用,直接通过TA的api获得cloak id,通过程序复制php服务器里的首个php文件,到其他文件夹,更改里面的cloak id为新获取的cloak id,返回新目录的网址,生成js代码,此方法保证投放链接的干净,避免传递参数。但是此方法也有个问题,有些第三方平台只让你粘贴一个在所有页面都加载的js代码而不能让每个页面都粘贴不同的js代码,需要根据平台支持情况来进行抉择了。
第三
使用带泛解析cname功能的cdn加速,通过对投放域名的泛解析子域名cname解析到php服务器域名,这样每个粘贴的js代码里面的链接都可以是不同的二级或三级域名。
第四
JS部署有个好处,因为是传参,理论上一个shopify的页面可以通过传递不同的参数而对应不同的cloak后台的campaign,即使是不同的国家的cloak配置都可以。
总结
好了至此部署步骤已经完毕,写的有些啰嗦,因为是边研究边做的记录,防止后续自己忘记了,尽可能记录的详细些,有些可选功能不是必须,更麻烦的设置为了更安全与长久,看个人选择,首次部署会麻烦些,但后续使用就会轻松很多。
本文由三分醉博客原创,转载请注明:https://www.sanfenzui.com/trafficarmor-cloak-self-hosted-javascript-integration.html
文章同步更新在知乎:三分醉 - 知乎
文章评论
现在都是用第三方安全页吧