一、最近因为业务需要,在研究微信跳转,域名防封检测等东西,网上搜集了很多很多资料,就把所有看过的帖子里例举出来的原理和方案,以及我自己的总结写一下。一、微信检测手段微信检测违规的两个手段:a)系统的自动检测 b)微信工作人员的人工检测。1、人工的检测重要是源于多用户投诉举报,微信后台有一个警报机制,在多少时间内积累充足的举报次数,将列入风险名单,对风险名单中 筛出来的,工作人员可能就会介入检测来确认2、微信后台自动检测(检测页面内容、关键词、描述和图片,URL、IP、友链黑名单等等…)当微信域名被屏蔽被拦截后,如下图,说明已经进被微信封杀了
第二种是多级矩阵加密跳转,这里需要注意的是,着陆页的域名尽可能长一点,落地域名采用多层动态加密形式,有效的保护好我们的原始推广落地页地址。如果是通过海报推广的用户还可以用到我们的活码接口,保证扫描二位码后的链接能够得到有效的切换,延长海报使用寿命。通过实践证明,多级矩阵加密防封效果更好、稳定性会更高。
1、防举报
2、检测工具
做检测微信域名检测工具的一般都会提供一些防封,而防封的操作效果其实很简单,流程就是通过检测工具检测是否被封,如果被封就找寻一个没有封的访问。所以他们采用的技术是检测工具+反向代理技术,也是目前市场主流用的技术。
3、利用短网址智能(人工+系统)轮换推广,尤其是那些大站的短网址,比如.url和.cn以及10086的,这样的话没那么容易被微信针对,从而可以规避一定的风险,而且短网址更有利于让客户记住还可以防篡改。
4、智能更换RUL结构,尽量使RUL趋于正常链接,这样机器人一般是识别不出来有问题的。
5、域名切换访问阀值处理,当一条域名的点击量达一定值的时候自动跳转到另一条域名进行访问,这样可以避免量太大而被微信注意到。
6、智能更换页面代码结构,并将页面代码加密,这样做的好处是规避进微信黑名单,这一点做起来可能有点困难。
最后分享代码供大家参考:
$url = "http://api.monkeyapi.com";$params = array('appkey' =>'appkey',//您申请的APPKEY'path' =>'/home',//需要切换的路由(非必传)); $paramstring = http_build_query($params);$content = Curl($url, $paramstring);$result = json_decode($content, true);if($result) { var_dump($result);}else { //请求异常} /** * 请求接口返回内容 * @param string $url [请求的URL地址] * @param string $params [请求的参数] * @param int $ipost [是否采用POST形式] * @return string*/function Curl($url, $params = false, $ispost = 0){ $httpInfo = array(); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if ($ispost) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_URL, $url); }else { if ($params) { curl_setopt($ch, CURLOPT_URL, $url.'?'.$params); } else { curl_setopt($ch, CURLOPT_URL, $url); } } $response = curl_exec($ch); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $httpInfo = array_merge($httpInfo, curl_getinfo($ch)); curl_close($ch); return $response;}