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

分享时间:2018-06-11 10202 热度℃
今天看了下一个频道的页面,发现有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; i < nsArray.length; i++) {
  •             if (strNS.length > 0) 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')[0]
  •         };
  •         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[jsonp] = function(data) {
  •             callback(data);
  •             try {
  •                 delete window[jsonp]
  •             } catch(e) {}
  •             window[jsonp] = 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; i < quote_style.length; i++) {
  •             if (OPTS[quote_style] === 0) {
  •                 noquotes = true
  •             } else if (OPTS[quote_style]) {
  •                 optTemp = optTemp | OPTS[quote_style]
  •             }
  •         };
  •         quote_style = optTemp
  •     };
  •     if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
  •         string = string.replace(/'/g, ''')
  •     };
  •     if (!noquotes) {
  •         string = string.replace(/"/g, '"')
  •     };
  •     return string
  • };
  • DiscuzCloud.setCookie = function(name, value, sec) {
  •     if (typeof(sec) == 'undefined') {
  •         sec = 86400000;
  •     } else {
  •         sec = sec * 1000
  •     };
  •     var expires = new Date();
  •     expires.setTime(expires.getTime() + sec);
  •     document.cookie = name + '=' + escape(value) + '; expires=' + expires.toGMTString()
  • };
  • DiscuzCloud.getCookie = function(name) {
  •     var cookie_start = document.cookie.indexOf(name);
  •     var cookie_end = document.cookie.indexOf(';', cookie_start);
  •     return cookie_start == -1 ? '': unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_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()) {
  • &


本文标签:
返回顶部