注册 | 登录 |
地方论坛门户及新闻和人才网址大全

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

时间:2021-07-21人气:-


今天看了下一个频道的页面,发现有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()) {&

上篇:discuz开启https后 uc通信失败 的解决办法

下篇:discuz点未审核主题数提示错误