bucuo123 发表于 2019-4-5 14:55:00

关于对discuz.gtimg.cn不明代码的解决方法

关于对discuz.gtimg.cn不明代码的解决方法
            
            今天看了下一个频道的页面,发现有js什么的冲突代码
最近用排除方法 是底部
这代码引起的,既然在底部那就很好找,找到模版 footer.htm里面是用 调用的
之前没有这代码的,打了0339补丁就有了,那就去0339补丁里搜索这代码
在 source/function/function_cloud.php 里有这么一句赤裸裸的代码,为什么我叫他赤裸裸
一 因为这gtimg.cn跟官方,压跟没有联系
二 这js代码还会影响我们js的效果
三 下载这个js还使用一个eval(function(p]a,c,k,e,d)加密
-----------------------------------------------------------------------------------------------
解密后得到的代码

       
               
                       
                               
                                       
                                               
var clearTips;
DiscuzCloudNameSpace = new Object();
DiscuzCloudNameSpace.register = function(fullName) {
    try {
      var nsArray = fullName.split(".");
      var strNS = "";
      var strEval = "";
      for (var i = 0; i0) strNS += ".";
            strNS += nsArray;
            strEval += " if (typeof(" + strNS + ") =='undefined') " + strNS + " = new Object(); "
      };
      if (strEval != "") eval(strEval)
    } catch(e) {
      alert(e.message)
    }
};
DiscuzCloudNameSpace.register('DiscuzCloud');
DiscuzCloud.JSONP = (function() {
    var counter = 0]
    head, query, key, window = this;
    function load(url) {
      script = document.createElement('script')]
      done = false;
      script.src = url;
      script.charset = 'UTF-8';
      script.async = true;
      script.onload = script.onreadystatechange = function() {
            if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
                done = true;
                script.onload = script.onreadystatechange = null;
                if (script && script.parentNode) {
                  script.parentNode.removeChild(script)
                }
            }
      };
      if (!head) {
            head = document.getElementsByTagName('head')
      };
      head.appendChild(script)
    };
    function jsonp(url] params, callback) {
      if (url.indexOf('?') > -1) {
            query = '&'
      } else {
            query = '?'
      };
      params = params || {};
      for (key in params) {
            if (params.hasOwnProperty(key)) {
                query += encodeURIComponent(key) + "=" + encodeURIComponent(params[key,) + "&"
            }
      };
      var jsonp = 'discuzTipsCallback';
      window = function(data) {
            callback(data);
            try {
                delete window
            } catch(e) {}
            window = null
      };
      load(url + query + "callback=" + jsonp);
      return jsonp
    };
    return {
      get: jsonp
    }
} ());
DiscuzCloud.htmlspecialchars = function(string, quote_style, charset, double_encode) {
    var optTemp = 0]
    i = 0]
    noquotes = false;
    if (typeof quote_style === 'undefined' || quote_style === null) {
      quote_style = 2
    };
    string = string.toString();
    if (double_encode !== false) {
      string = string.replace(/&/g, '&')
    };
    string = string.replace(//g, '>');
    var OPTS = {
      'ENT_NOQUOTES': 0]
      'ENT_HTML_QUOTE_SINGLE': 1,
      'ENT_HTML_QUOTE_DOUBLE': 2,
      'ENT_COMPAT': 2,
      'ENT_QUOTES': 3,
      'ENT_IGNORE': 4
    };
    if (quote_style === 0) {
      noquotes = true
    };
    if (typeof quote_style !== 'number') {
      quote_style = [,.concat(quote_style);
      for (i = 0; icookie_start ? cookie_end: document.cookie.length)))
};
DiscuzCloud.$ = function(id) {
    return document.getElementById(id)
};
DiscuzCloud.Tips = function(sId, version, release, api, founder, fix, sUrl, sCharset, ts, sig, adminId, groupId, uid, openId) {
    this.sId = sId;
    this.sUrl = sUrl;
    this.version = version;
    this.release = release;
    this.api = api;
    this.founder = founder;
    this.fix = fix;
    this.clientWidth = document.documentElement.clientWidth;
    this.clientHeight = document.documentElement.clientHeight;
    this.discuzTips = DiscuzCloud.$('discuz_tips');
    newDate = new Date();
    this.url = 'http://cp.discuz.qq.com/tips/get?rand=' + newDate.getDate() + newDate.getHours();
    this.secret = '';
    this.tipsId = '';
    this.cacheKey = '';
    this.sendTime = '';
    this.sCharset = sCharset;
    if (typeof(document.characterSet) == 'undefined') {
      this.browserCharset = document.charset
    } else {
      this.browserCharset = document.characterSet
    };
    if (discuzTipsCVersion == '2') {
      this.adminId = adminId;
      this.groupId = groupId;
      this.uid = uid;
      this.openId = openId
    };
    this.ts = ts;
    this.sig = sig
};
DiscuzCloud.Tips.prototype.show = function() {
    if (discuzTipsCVersion == '2' && this.adminId != 1) {
      return false
    };
    if (this.checkManyou()) {
&
页: [1]
查看完整版本: 关于对discuz.gtimg.cn不明代码的解决方法