You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery插件中提供回调函数是否存在XSS攻击安全风险?

这款jQuery插件是否存在XSS安全风险?

我使用一款热门jQuery插件已有多年,近期学习网络安全知识(我并非专家,但希望写出更优质代码)时,意识到这款插件及其他诸多插件可能存在XSS攻击漏洞。能否帮我判断该插件是否安全?

以下是简化后的插件代码(暂不提及插件名称):

(function ($, document, window){
    var defaults = {
        callback: false,
        // more options
    };

    publicMethod = $.fn.pluginName = function (options, callback) {
        options = options || {};
        var settings = $.extend(true, {}, defaults, options);

        // event listener.
        trigger('pluginName.launch');
        
        // callback function.
        $.isFunction(settings.callback){
            settings.callback.call();
        }

        // more stuff
    };
};
}(jQuery, document, window));

你可以像这样调用插件,传入包含任意代码的回调函数:

$.pluginName({
    option1: value1,
    callback: function(){
        $('#someDIV').html('<script>...</script>');
        $('body').append($('<script />...'));
        eval();// Do eval things...?
    }
});

此外,你还可以为事件监听器添加自定义代码:

$(document).on('pluginName.launch', function(){
    eval();// More eval stuff?
});

由于用户输入的JS未经过sanitize(净化),这是否会构成安全问题?

我已通过Chrome控制台利用事件监听器执行.call()及任意自定义代码,这看起来存在风险:

var test = function(){
  alert('foo');
  //eval();....
}
    
$(document).on('pluginName.launch', function(){
    test.call();
});

内容的提问来源于stack exchange,提问作者Must Impress

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 23:02:46