史上最详细微信域名链接防封实现原理及解决方案

想通过活动营销来推广产品的用户,肯定经常遇到域名被微信封杀拦截屏蔽的情况,想申请恢复访问过程复杂,而且由个人或小团队经营的网站基本只能放弃,花钱解封价格昂贵,遇到恶意举报还是一样被封,如此循环带来的损失无疑是很大的,都是在做推广,为何有人推广起来畅通无阻,而有人的微信域名频繁被封,其实微信被拦截被封无法访问很常见,经过测试以后还是可以防止微信域名被封的,并且很多团队也是通过微信域名防封的技术让域名存活的时间更长。那我们要怎样去理解微信域名链接防封实现原理及解决方案?我们从以下几方面来了解:
一.域名被微信拦截的因素
1、举报。包括用户举报,同行恶意举报,提交微信团队检测后进行封杀。
2、转发量过大。转发也是提供产品曝光率和点击率的必要手段,但是转发次数多也会触发系统的自动检测系统从而被封杀。
3、内容。微信或人工检测到内容不实、侵权、诱导分享、营销广告、博彩或擦边球等等,都会导致域名被加入黑名单。

史上最详细微信域名链接防封实现原理及解决方案_第1张图片
微信域名防封
二.解决方案,可以从两方面着手,一是硬方面,二算是软方面
硬方面:就要是服务器,服务器方面是目前很多大家在做的,很多做防封的朋友都一样这种经历,例如把自己的域名解析到防封平台的服务器上,很诡异的是确实被封的概率确实降低了很多。这种形式操作的防封平台有很多,最早以前做的是微盾一批人是这么做的,而微盾现在已经不做了。这种技术我们叫做反向代理,但是不持久。那主要还是要从软方面着手,下面这里就具体说下这方面:
1、防举报
不管怎么说举报是一个很伤人的事情,因为同行竞争么很正常,这块防止举报甚至已经有人研究出微信举报按钮通过底层技术破解,让对方无法举报。但是听说效果都不怎么样,也是会莫名奇妙被封。所以一般逃避举报最简单粗暴的方式就是做跳转,所以现在防止举报都是加密+跳转的形式,这样被举报的概率几乎很小。
2、检测工具
做检测微信域名检测工具的一般都会提供一些防封,而防封的操作效果其实很简单,流程就是通过检测工具检测是否被封,如果被封就找寻一个没有封的访问。所以他们采用的技术是检测工具+反向代理技术,也是目前市场主流用的技术。
3 、利用短网址智能(人工+ 系统)轮换推广,尤其是那些大站的短网址,比如.url 和.cn 以及10086 的,这样的话没那么容易被微信针对,从而可以规避一定的风险,而且短网址更有利于让客户记住还可以防篡改。
4 、智能更换RUL 结构,尽量使RUL 趋于正常链接,这样机器人一般是识别不出来有问题的。
5 、域名切换访问阀值处理,当一条域名的点击量达一定值的时候自动跳转到另一条域名进行访问,这样可以避免量太大而被微信注意到。
6 、智能更换页面代码结构,并将页面代码加密,这样做的好处是规避进微信黑名单,这一点做起来可能有点困难。
以上说是小编我的微信域名链接防封实现原理及解决方案,希望对大家有扎帮助,下面分享代码供各位大佬参考,有想法的可以登录联系我探讨最新防封方面的知识。

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONObject;public class Demo {
  public static final String DEF_CHATSET = "UTF-8";
  public static final int DEF_CONN_TIMEOUT = 30000;
  public static final int DEF_READ_TIMEOUT = 30000;
  public static String userAgent =  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
  publicstaticvoidmobileQuery(){
      String result =null;
      String url ="http://api.monkeyapi.com";//请求接口地址      Map params = new HashMap();//请求参数        params.put("appkey" , "appkey");//您申请的APPKEY        params.put("url" , "www.monkeyapi.com");//需要查询的网站      try {
          result = net(url, params, "GET");
          JSONObject object = JSONObject.fromObject(result);
          if(object.getInt("error_code")==0){
            System.out.println(object.get("result"));
          }else{
            System.out.println(object.get("error_code")+":"+object.get("reason"));
          }
      } catch (Exception e) {
        e.printStackTrace();
      }
  }
  publicstaticvoidmain(String[] args) {
  }
  /**
  *
  * @param  strUrl 请求地址
  * @param  params 请求参数
  * @param  method 请求方法
  * @return    网络请求字符串
  * @throws  Exception
  */  publicstaticStringnet(String strUrl, Mapparams,String method) throws Exception {
    HttpURLConnection conn = null;
    BufferedReader reader = null;
    String rs = null;
    try {
        StringBuffer sb = new StringBuffer();
        if(method==null || method.equals("GET")){
          strUrl = strUrl+"?"+urlencode(params);
        }
        URL url = new URL(strUrl);
        conn = (HttpURLConnection) url.openConnection();
        if(method==null || method.equals("GET")){
          conn.setRequestMethod("GET");
        }else{
          conn.setRequestMethod("POST");
          conn.setDoOutput(true);
        }
        conn.setRequestProperty("User-agent", userAgent);
        conn.setUseCaches(false);
        conn.setConnectTimeout(DEF_CONN_TIMEOUT);
        conn.setReadTimeout(DEF_READ_TIMEOUT);
        conn.setInstanceFollowRedirects(false);
        conn.connect();
        if (params!= null && method.equals("POST")) {
          try {
              DataOutputStream out = new DataOutputStream(conn.getOutputStream());
              out.writeBytes(urlencode(params));
          } catch (Exception e) {
              //TODO:handle exception              e.printStackTrace();
          }
        }
      InputStream is = conn.getInputStream();
      reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
      String strRead = null;
      while ((strRead = reader.readLine()) != null) {
        sb.append(strRead);
      }
      rs = sb.toString();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (reader != null) {
          reader.close();
      }
      if (conn != null) {
          conn.disconnect();
      }
    }
    return rs;
  }
  //将map型转为请求参数型  publicstaticStringurlencode(Map data) {
      StringBuilder sb = new StringBuilder();
      for (Map.Entry i : data.entrySet()) {
          try {
              sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
          } catch (UnsupportedEncodingException e) {
              e.printStackTrace();
          }
      }
      return sb.toString();
  }
}


你可能感兴趣的:(史上最详细微信域名链接防封实现原理及解决方案)