跳至主要内容
短.be

SQL 注入

通过在用户输入中嵌入恶意 SQL 代码来操纵数据库的攻击手法。

2026年8月11日 · 约 1 分钟阅读

安全

SQL 注入是指在 Web 应用程序的输入框中注入 SQL 代码,从而非法操作数据库的攻击手法。它是常年位列 OWASP Top 10 的代表性 Web 安全威胁,可能导致数据被窃取、被篡改、被删除,甚至造成服务器被完全控制。

攻击的原理很简单。例如在登录表单的用户名栏中输入 `' OR '1'='1`,后端的 SQL 查询就会变成 `SELECT * FROM users WHERE username='' OR '1'='1' AND password='...'`,由于条件恒为真,认证便可以被绕过。

防范 SQL 注入的基础,是使用预处理语句也就是参数化查询。不要把用户输入直接拼接进 SQL 字符串,而要通过占位符把它作为参数传入,这样就能防止输入值被当作 SQL 代码来解释。即使使用 ORM (Object-Relational Mapping),在书写原生 SQL 查询时也请使用预处理语句。

在短链接服务中,用户输入的 URL 和自定义别名都可能成为 SQL 注入的攻击入口。如果使用 DynamoDB 这类 NoSQL 数据库,虽然不会发生传统的 SQL 注入,但仍然存在 NoSQL 注入也就是查询条件被篡改的风险,因此输入校验依然重要。

分享到 XHatena

这篇文章对您有帮助吗?

相关术语

相关文章

常见问题

防止 SQL 注入最有效的方法是什么?
使用预处理语句(参数化查询)最为有效。不将用户输入直接嵌入 SQL 语句,而是作为参数传递,从而防止 SQL 代码注入。
使用 ORM 就能防止 SQL 注入吗?
ORM 基本上使用预处理语句,正常使用是安全的。但使用直接执行原始 SQL 查询的功能时需要注意。

把知识用到真实链接上

免费缩短网址