关于对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; 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教程 关于对discuz.gtimg.cn不明代码的解决方法 https://www.u532.com/1556.html

常见问题

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务