朋友想做微信的引流销售
但是出现一个现象
网站还没推广,只在朋友之间测试,反馈
然后有朋友反映
网站被封了
可以肯定的是,绝对没人投诉
那么应该是微信对网站内容进行了检测
看了下页面,并没有什么违法乱纪的内容
微信为了用户体验,单方面的禁封商业行为,可以理解
但是既然找到了我,那肯定要帮忙看下微信检测的机制了
一般避免检测的话,无非两种办法:
- 内容
- 途径
内容的话可以这么改:把可能涉及违规的文本换成图片
作为程序员肯定都明白,对文本检测很容易,对图片检测的话难度就高了
再说说途径
途径就是尽量避免微信对你检测
类比权重之于百度
当然还是先看下服务器日志再讨论
看了下日志,没发现什么异常
倒是自己访问的时候,有几点可疑:
访问IP
访问时用的wifi,看了下IP是219.*.*.*
但是日志里记录的我的IP是218.*.*.*
以为是日志记录有误,手动测试后发现客户端IP的确被改了
出现这种现象的唯一解释是:
微信浏览器自带代理
之前所说的微信内置浏览器会代理用户,用这个可以防止微信代理
原理很简单,微信只代理GET和4K以下的POST,那就把所有A标签改成POST,Form追加内容
window.onload = function(){var doc = document,wxframe = {createForm : function(){this.form = doc.createElement('form'),this.additional = doc.createElement('input');var weight = ' ',i = 3,input = this.additionalinput.type = 'hidden';input.name = ' ';while(i--){weight = weight.replace(/./g, function(a,b){return ' ';});}input.value = weight;this.form.method = 'POST';},each : function(array, method){var i = array.lengthwhile(i--){method(array[i]);}},init : function(){this.createForm();wxframe.each(doc.byTagName('form'), function(then){then.addEventListener('submit', function(){this.appendChild(wxframe.additional);});});wxframe.each(doc.byTagName('a'), function(then){var href = then.href;if(typeof href == 'string' && !/^java|^#/.test(href)){then.addEventListener('click', function(e){e.preventDefault(e);wxframe.form.append(wxframe.additional);wxframe.form.action = href;wxframe.form.submit();});}});}};doc.byTagName = function(tagName){return doc.getElementsByTagName(tagName)};wxframe.init();};
需要注意:若POST到.html页面, 服务端会报405 Not Allowed,需要在服务器修改配置,Nginx 如下
location ^~ *.html {if ($request_method = POST) {error_page 405 =200 http://$host$request_uri;}}
来源:https://zcmzcm.org/post/zcmzcm/%E5%BE%AE%E4%BF%A1%E9%98%B2
Free-Abc智能