背景 一、微信檢測手段 二、功能變數名稱被封常見因素 三、功能變數名稱檢測原理 四、檢測代碼(C#) 五、防封方案 六、參考資料 背景 最近因為業務需要,在研究微信跳轉,功能變數名稱防封檢測等東西,網上搜集了很多很多資料,發現居然這麼簡單的一點東西 居然有人專門做成系統拿去賣錢.. 系統功能就只是個微信跳轉而已,微信跳外部 ...
背景
最近因為業務需要,在研究微信跳轉,功能變數名稱防封檢測等東西,網上搜集了很多很多資料,發現居然這麼簡單的一點東西 居然有人專門做成系統拿去賣錢.. 系統功能就只是個微信跳轉而已,微信跳外部瀏覽器 或者瀏覽器跳到微信內.. 而且搜出來很多家這種收費的系統,界面都一模一樣.. 真的是無語了。聽說這還屬於灰產... 我把這些弄出來是不是也可以拿去賣錢了?哈哈哈。
在網上搜索了很多相關的資料和帖子,發現很多都是大同小異的,原理其實都差不多, 但是搜了很多,它就是不把關鍵代碼和原理告訴你... 也是,告訴你了 還怎麼賺錢呢,哈哈哈.不過既然是做技術的,既然人家不告訴你,那就只要自己研究了。研究了幾天,算是有點結果了。就把所有看過的帖子里例舉出來的原理和方案,以及我自己的總結寫一下。
一、微信檢測手段
微信檢測違規的兩個手段:a)系統的自動檢測 b)微信工作人員的人工檢測。
1、人工的檢測重要是源於多用戶投訴舉報,微信後臺有一個警報機制,在多少時間內積累充足的舉報次數,將列入風險名單,對風險名單中 篩出來的,工作人員可能就會介入檢測來確認
2、微信後臺自動檢測(檢測頁面內容、關鍵詞、描述和圖片,URL、IP、友鏈黑名單等等...)
當微信功能變數名稱被屏蔽被攔截後,如下圖,說明已經進入黑名單了
二、功能變數名稱被封常見因素
功能變數名稱被封,確實有很多因素,簡單列舉下:
1、功能變數名稱歷史,有過違規記錄,風險名單中的重點高頻檢測。;
2、qq和微信是不同的監測機制,同時兩邊推廣很危險,會被封的很快;
3、網站流量大,微信里有個傳播2000次就被屏蔽的問題,比如分享賺錢的平臺;
4、誘導分享傳播,即使是合法營銷,也會被封;
5、內容 標題 關鍵詞 描述 主體 頁頭頁腳 有風險違規詞的,被系統輪詢測到了;
6、項目競爭大,同行舉報過多,有人開發了模擬人為無限次舉報的軟體;
7、有的是封鏈接不封功能變數名稱,因為是第三方平臺,比如有贊平臺等。
8、 關聯,伺服器 IP 友鏈 鄰居有違規的,重點檢測。
9、圖片,視頻,對於明顯特征或復用度高的違規圖片,系統是能識別的
三、功能變數名稱檢測方法
搜索資料的過程中,發現了好幾個說可以檢測的方法,但實際上有的方法已經失效,有的方法效果也不太好:
1、利用微信公眾號介面 生成微信短連接
看別人帖子里說的檢測原理是:
1)生成短短鏈接後,程式定期去請求打開地址,判斷是否重定向到 weixin110.qq.com/xxxx 等地址去. 如果重定向過去了則說明基本是打不開了。
2)還有的是程式請求打開地址,然後用程式識圖 看界面上是否存在紅色大圓點..如果存在則說明被封禁了,需要換個地址重新生成. 大概就這兩種..
這種方式至少看到過兩篇文章說過,但是效果好像都不太理想,有的甚至生成短鏈接後秒封..而且需要微信公眾號操作,我這邊業務不設計到這個,也沒有運營的公眾號,所以沒有深究這個方法。
2、網頁版微信抓包
此方法意思也就是 通過抓包,抓取打開微信里的鏈接時請求校驗地址是否合法的介面, 但是這個方法我也嘗試過,抓不到介面,正常鏈接跳轉沒有校驗的請求,被封禁的地址 就直接打不開了。後面也試了網上找的其他介面,也無效。
請求的都是 weixin110.qq.com 開頭的地址.. 但是實際上沒什麼用..比如下麵這個... 點擊就沒反應
https://weixin110.qq.com/cgi-bin/mmspamsupport-bin/newredirectconfirmcgi?main_type=2&evil_type=20&source=2&url=https%3A%2F%2Fcandy.one
3、“官方”檢測介面
下麵這個是網上找到的另外一個說是可以檢測地址的介面,看這Url確實像是個檢測地址的介面對吧?呵呵,但是實際也沒什麼用..打開沒反應,不跳轉,頁面也沒有任何輸出..
https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxcheckurl?requrl=http%3A%2F%2Fwww.penhot.com
4、可用介面
http://qbview.url.cn/getResourceInfo?appid=31&url=http://www.wangzhesha.com
找了很久終於才找到這個可以檢測的介面.. 雖然表現形式上 算不上是真正的API形式吧.. 但是也能檢測出是否有沒有被封禁來。
後面的url改成你想要檢測的地址,如果沒有被封禁,則會跳轉到目標地址去,如果地址被封禁了,則會在頁面上提示出來。那麼如何用程式檢測出來呢?道理也很簡單,判斷請求響應的結果是否重定向了就行。代碼如下
四、檢測代碼
1 [HttpPost] 2 public ActionResult Check() 3 { 4 var url = Request["Url"]?.ToString() ?? ""; 5 try 6 { 7 var strUrl = "http://qbview.url.cn/getResourceInfo?appid=31&url=" + url; 8 HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(strUrl); 9 httpWebRequest.Method = "GET"; 10 // 一定要設置 AllowAutoRedirect 為false,否則如果請求包含重定向,則請求的響應會返回重定向之後的頁面內容... 11 httpWebRequest.AllowAutoRedirect = false; 12 //httpWebRequest.ContentType = "application/x-www-form-urlencoded"; 13 HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 14 Stream responseStream = httpWebResponse.GetResponseStream(); 15 StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8); 16 string strResult = streamReader.ReadToEnd(); 17 int result = (int)httpWebResponse.StatusCode; 18 // 若302跳轉了則表明功能變數名稱正常, 沒有跳轉說明被封禁了 19 return Content(result == 302 ? "1" : "0"); 20 } 21 catch (Exception ex) 22 { 23 return Content("-1"); 24 } 25 }
利用這個介面,就可以自己寫出一個功能變數名稱檢測的API啦!
五、防封方案
1、微信里的入口功能變數名稱最好用備案功能變數名稱。並且要加白名單
2、不要QQ和微信同時用一個鏈接去推廣
3、網站內容 關鍵字、描述 圖片等,不能出現敏感詞
4、屏蔽舉報按鈕(此方法失效,嘗試過,但是對於現在的微信而言沒用.. 還是可以舉報)
5、結合微信超級跳轉技術,利用大站的跳轉漏洞,使用CDN,刪除跳轉來源等等.. 儘可能提高Url在微信里的存活時間,微信跳轉方法和原理詳情請看另一篇隨筆《微信功能變數名稱檢測、防封,微信跳轉技術揭秘(二) -- 微信跳轉揭秘》
六、參考資料
1.http://www.penhot.com/read-study/1732.html
2.https://www.jianshu.com/p/50cefada7cbb
3.https://blog.csdn.net/weixin_44358823/article/details/86551792
4.https://www.orzlee.com/index.php/web-development/2019/01/28/wechat-domain-name-is-blocked-and-automatically-replaced-domain-name.html
5.https://short.huanghanlian.com/p/5cac62d26748ea3010382f4f
6.https://www.cnblogs.com/stumpx/p/10154484.html