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

使用$.get请求JS文件未回调却自动执行代码,是jQuery安全问题吗?

jQuery $.get() 请求JS文件时自动执行代码的问题

我在调试Node.js应用时发现一个关键现象:使用jQuery的$.get(code_url)方法(其中code_url指向服务器端JavaScript代码的URL)时,代码会被自动执行。

我预期的行为应该是:

$.get("script.js", function(data) {
    // data包含'script.js'的内容字符串
    // 开发者可选择:
    // - 将其添加到DOM
    // - 使用eval()执行
    // - 存储供后续使用
});

但实际情况是,即便未设置回调函数做任何处理,目标JS文件的代码仍会被自动执行。

复现细节

测试环境

  • jQuery 3.6.3 和 3.7.1
  • Google Chrome 123.0.6312.122(64位正式版)
  • Linux Ubuntu 22.04

复现代码

Node.js 服务器代码

const express = require('express');
const App = express();
App.use(express.static('www'));
App.listen(5000);

前端执行代码(index.js,由index.html加载)

$(document).ready(function() {
    $.get("utils.js")
});

被请求的静态JS文件(www/utils.js)

console.log("Hello World");
let a=1000;
console.log(Math.PI*a);

执行后,utils.js中的代码确实被自动执行(已通过Chrome控制台截图验证)。

注:该问题似乎仅在本地服务器环境中出现,但这会导致无法在不自动执行的情况下下载代码,这是jQuery的重大漏洞吗?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:12:16