首页 » php » 关于微信内置浏览器默认走代理-转

关于微信内置浏览器默认走代理-转

 

朋友想做微信的引流销售

但是出现一个现象

网站还没推广,只在朋友之间测试,反馈

然后有朋友反映

网站被封了

title

可以肯定的是,绝对没人投诉

那么应该是微信对网站内容进行了检测

看了下页面,并没有什么违法乱纪的内容

微信为了用户体验,单方面的禁封商业行为,可以理解

但是既然找到了我,那肯定要帮忙看下微信检测的机制了

一般避免检测的话,无非两种办法:

  1. 内容
  2. 途径

内容的话可以这么改:把可能涉及违规的文本换成图片

作为程序员肯定都明白,对文本检测很容易,对图片检测的话难度就高了

再说说途径

途径就是尽量避免微信对你检测

类比权重之于百度

当然还是先看下服务器日志再讨论

看了下日志,没发现什么异常

倒是自己访问的时候,有几点可疑:

 

访问IP

访问时用的wifi,看了下IP是219.*.*.*

但是日志里记录的我的IP是218.*.*.*

以为是日志记录有误,手动测试后发现客户端IP的确被改了

出现这种现象的唯一解释是:

微信浏览器自带代理

之前所说的微信内置浏览器会代理用户,用这个可以防止微信代理

原理很简单,微信只代理GET和4K以下的POST,那就把所有A标签改成POST,Form追加内容

  1. window.onload = function(){
  2. var doc = document
  3. ,wxframe = {
  4. createForm : function(){
  5. this.form = doc.createElement('form')
  6. ,this.additional = doc.createElement('input');
  7. var weight = ' '
  8. ,i = 3
  9. ,input = this.additional
  10. input.type = 'hidden';
  11. input.name = ' ';
  12. while(i--){
  13. weight = weight.replace(/./g, function(a,b){
  14. return ' ';
  15. });
  16. }
  17. input.value = weight;
  18. this.form.method = 'POST';
  19. }
  20. ,each : function(array, method){
  21. var i = array.length
  22. while(i--){
  23. method(array[i]);
  24. }
  25. }
  26. ,init : function(){
  27. this.createForm();
  28. wxframe.each(doc.byTagName('form'), function(then){
  29. then.addEventListener('submit', function(){
  30. this.appendChild(wxframe.additional);
  31. });
  32. });
  33. wxframe.each(doc.byTagName('a'), function(then){
  34. var href = then.href;
  35. if(typeof href == 'string' && !/^java|^#/.test(href)){
  36. then.addEventListener('click', function(e){
  37. e.preventDefault(e);
  38. wxframe.form.append(wxframe.additional);
  39. wxframe.form.action = href;
  40. wxframe.form.submit();
  41. });
  42. }
  43. });
  44. }
  45. };
  46. doc.byTagName = function(tagName){return doc.getElementsByTagName(tagName)};
  47. wxframe.init();
  48. };

需要注意:若POST.html页面, 服务端会报405 Not Allowed,需要在服务器修改配置,Nginx 如下

  1. location ^~ *.html {
  2. if ($request_method = POST) {
  3. error_page 405 =200 http://$host$request_uri;
  4. }
  5. }

 

 

来源:https://zcmzcm.org/post/zcmzcm/%E5%BE%AE%E4%BF%A1%E9%98%B2

原文链接:关于微信内置浏览器默认走代理-转,转载请注明来源!

0