讲师中心 微信公众号

工具推荐

视频效率加速
Laper
Laper

剧本策划到成片协作

Seko
Seko

AI短剧一键生成成片

AniShort
AniShort

AI短剧协同制作平台

updream

一键生成高质量推广成片

为什么在前端JS代码中拼接SQL字符串是极度危险的行为?

轻明姑娘_9282

轻明姑娘_9282

发布时间:2026-06-28 06:17:47

|

454人浏览过

|

来源于php中文网

原创

前端拼接SQL字符串不可行且危险,因浏览器无法执行原生SQL,仅能发送字符串至后端;此举暴露数据库结构、误导开发、放大注入风险,且前端校验无效,安全必须由后端严格白名单与参数化查询保障。

为什么在前端js代码中拼接sql字符串是极度危险的行为?

在前端 JavaScript 中拼接 SQL 字符串不是“不推荐”,而是根本不可行——浏览器环境压根无法执行原生 SQL,所谓“拼接”只会暴露逻辑漏洞或引发严重误解。

前端根本不能运行 SQL 查询

现代浏览器不提供直接连接 MySQL、PostgreSQL 等数据库的原生能力。任何看似在 fetch() 或 axios 里拼接的 "SELECT * FROM users WHERE name = '" + name + "'",实际只是字符串,最终仍要发给后端 API。此时拼接行为本身不触发 SQL 执行,但会把危险逻辑提前暴露在客户端:

  • 攻击者可直接查看源码,拿到 SQL 模板结构(比如知道表名是 users、字段是 name)
  • 若前端错误地把后端接口路径或参数格式“模拟成 SQL”,可能误导开发者绕过真实校验
  • 部分低代码平台或 Electron 应用误用 sqlite3 模块时,才真有本地 SQL 执行风险,但那已不属于 Web 前端标准场景

真正危险的是后端拼接,但前端会放大风险

前端 JS 里出现 "WHERE username = '" + x + "'" 这类代码,往往意味着后端也在用同样方式构造 SQL。这种写法一旦落到服务端,立刻变成高危入口:

  • 用户输入 admin' -- 会让最终语句变成 WHERE username = 'admin' -- ',注释掉后续条件
  • 输入 admin' OR '1'='1 可能绕过登录校验
  • 如果前端还把拼接结果直接塞进 fetch('/api/login?sql=' + sql),等于主动帮攻击者构造 payload

为什么白名单和正则校验在前端无效

有人试图在前端用正则过滤 '、--、UNION 等关键词来“防注入”,这完全徒劳:

Expanso yaml-to-json
Expanso yaml-to-json

使用 Expanso Edge 管道将 YAML 输入转换为 JSON 格式。

下载

立即学习“前端免费学习笔记(深入)”;

  • SQL 注入变种极多(如宽字节、编码绕过、注释符嵌套),前端正则永远滞后
  • 攻击者可禁用 JS、改写前端逻辑、或直接跳过前端调用后端接口
  • 校验必须由后端完成,且仅对动态结构(如表名、排序字段)才需白名单 —— 但白名单也必须服务端校验,前端传来的任何值都不能信

ORM 和框架的“安全假象”容易被打破

即使你用的是 Sequelize 或 TypeORM,只要在前端诱导后端执行了 .raw() 或 .query(),就退回裸奔状态:

  • 错误示例:User.sequelize.query(`SELECT * FROM ${tableName}`) —— 表名无法参数化,必须后端白名单硬校验
  • 更隐蔽的坑:db.session.execute(f"UPDATE logs SET status = '{status}'") —— Python 的 f-string 和 JS 的模板字符串一样危险
  • 安全写法只有一种:client.query("SELECT * FROM logs WHERE level = $1", ["error"]) 或 User.query.filter(User.name == name).all()

最容易被忽略的不是“怎么写安全 SQL”,而是“谁来决定哪部分能动态、哪部分必须冻结”。表名、字段名、ORDER BY 子句、LIMIT 值……这些都不能靠参数占位符,必须由后端用严格白名单 + 正则 + 最小权限 DB 账号兜底。前端连参与决策的资格都没有。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2923

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

6363

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

7270

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

7118

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

1023

2024.05.22

数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

4863

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

991

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

1289

2024.02.23

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

40

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebStorm 官方调试文档
WebStorm 官方调试文档

共0课时 | 0人学习

React 教程
React 教程

共58课时 | 12.5万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn