前面提到了微信功能變數名稱的封禁原理和檢測手段以及一些基本防範的方案。詳見《微信功能變數名稱檢測、防封,微信跳轉技術揭秘(一) -- 功能變數名稱檢測原理及防封方案》 要想讓地址在微信里不被封禁,或者說 儘可能的存活時間久一點,那麼需要註意以下幾點: 1、微信里的入口功能變數名稱最好用備案功能變數名稱。並且要加白名單2、不要QQ和微信同時 ...
前面提到了微信功能變數名稱的封禁原理和檢測手段以及一些基本防範的方案。詳見《微信功能變數名稱檢測、防封,微信跳轉技術揭秘(一) -- 功能變數名稱檢測原理及防封方案》
要想讓地址在微信里不被封禁,或者說 儘可能的存活時間久一點,那麼需要註意以下幾點:
1、微信里的入口功能變數名稱最好用備案功能變數名稱。並且要加白名單
2、不要QQ和微信同時用一個鏈接去推廣
3、網站內容 關鍵字、描述 圖片等,不能出現敏感詞
4、屏蔽舉報按鈕(此方法失效,嘗試過,但是對於現在的微信而言沒用.. 還是可以舉報)
5、結合微信超級跳轉技術,利用大站的跳轉漏洞,使用CDN,刪除跳轉來源等等.. 儘可能提高Url在微信里的存活時間,
這次我們就主要看看微信跳轉的實現方式。
現在在百度上搜索微信跳轉,出來一大堆收費的系統,簡言概括以下就是以下兩種形式:
一、微信中點開鏈接或者掃碼,直接跳轉到外部瀏覽器打開目標地址
二、在瀏覽器中,點擊鏈接,跳轉到微信中 打開地址/關註公眾號/添加微信好友 等等這些功能
第二點是從瀏覽器跳轉到微信中,可以進行添加好友、關註公眾號等系列操作。比較適用於推廣引流等場景。我所涉及的業務跟這個無關,所以這一點我只是看看瞭解了一下,沒有去深究,有興趣可以網上搜索一下。
這種的原理也很簡單,網頁中跳轉的鏈接協議是微信的scheme:
weixin://dl/business/?ticket=ta428dhj739hg3efe6e
唯一關鍵的地方 就是這個ticket的生成規則了,研究透了這個,就很簡單了。
這裡主要說一下第一點,在微信里打開鏈接或者掃碼,直接跳轉到外部瀏覽器中打開地址。但是,這種方法 僅限於安卓用戶. iOS 無法跳轉外部打開
一般而言,微信防封是和這個微信跳轉是息息相關的。也是主要的規避手段。
先來說一下微信跳轉,用外部瀏覽器打開的原理吧。 其實也很簡單,就是利用微信打開文檔會跳轉到外部打開的原理實現的.
大家可以用安卓手機,在微信上發一個doc文檔或者pdf文件,然後打開試試看?它會跳轉到外部瀏覽器去打開文檔。。所以,原理都知道了,那麼接下來就好辦了吧..
奉上一段代碼片段僅供大家參考:
var UA = HttpContext.Current.Request.UserAgent; // 如果是在微信里訪問 if (UA.ToLower().IndexOf("micromessenger") != -1) { if (UA.ToLower().IndexOf("android") > -1 || UA.ToLower().IndexOf("adr") > -1) { //Android端微信里打開頁面,則響應文件格式數據,會跳出到外部瀏覽器來 Response.ContentType = "application/vnd.ms-word;charset=utf-8"; Response.AddHeader("Content-Disposition", "attachment; filename=\"/Content/1.docx\""); Response.End(); } else { //ios 或PC,提示外部瀏覽器打開 Header.Title = "請在瀏覽器中打開"; body.InnerHtml += "<div id=\"weixinTip\" style=\"z-index: 10000; position: fixed; top: 0; left: 0; background-color: rgba(0,0,0,0.8); height: 100%; width: 100%;\">" + "<p style=\"text-align: center; margin-top: 20px;\"><img src=\"https://upload.cc/i1/2018/11/02/2LFNtS.png\" style=\"width: 84%;max-width:565px;\" alt=\"請在瀏覽器中打開\" /></p></div>"; } } else { // 若不是在微信里打開,則直接跳轉到目標地址 Response.Redirect(url.ToString()); }
利用這個原理,結合前面說的那些規避的手段,基本就能知道那些收費的系統的整個流程了。其實現在市面上很多微信防封的也是用的這種手段,他們對接的大概流程如下:
1、付費購買他們的服務,他們提供一個專屬的後臺
2、需要客戶提供一個正常的 微信內可以正常訪問的功能變數名稱(有的也不需要提供,直接用他們的)
3、後臺可以配置推廣落地頁的地址,配置好後 會自動生成推廣二維碼和一個短鏈接。客服會讓他們用這個短鏈接和二維碼去推廣..
他們生成的這個短鏈接,其實就是套了一層,利用客戶或者他們自己提供的正常的功能變數名稱,綁定到自己開發的跳轉的小程式上,這個小程式,就是利用上面微信打開跳轉的原理實現的。大概流程應該跟下麵的差不多:
最後這一步 生成第三方的短鏈接 可要可不要,可能是覺得多一層跳轉,更安全一些吧。
好了,微信跳轉的原理就是這些,可能表達的不太好,希望還是能看明白是怎麼回事吧。本篇就只說一下這個的原理,下一篇再分享記錄一下《微信跳轉、微信防封系統的實現和設計》