Sequelize 防 SQL 注入,不是“用了 ORM 就够了”

Sequelize 的模型方法确实会自动做参数绑定,但这只覆盖“值”,并不覆盖列名、表名、排序字段这类 SQL 结构位。本文把几种最容易误判的场景拆开讲清:模型方法何时安全、`sequelize.query()` 为什么必须配合 `replacements`、`literal()` 与 `fn()` 为什么会绕过防护,以及动态字段该怎样用白名单收口。

Sequelize 防 SQL 注入,不是“用了 ORM 就够了”

SQL 存储过程如何压测并发执行性能

用 JMeter 压测 Oracle 存储过程时,结果失真往往不是数据库性能问题,而是调用方式和参数配置出了偏差。本文按“能否真实打到存储过程”“参数是否绑定正确”“并发是否被环境限制”三条线梳理常见误区,帮助你快速判断压测结果到底能不能信。

SQL 存储过程如何压测并发执行性能

SQL 子查询中 DISTINCT 为什么仍有重复数据

很多 SQL 查询里,子查询明明加了 DISTINCT,结果外层一 JOIN 还是出现重复,看起来像“去重失效”。问题通常不在 DISTINCT 本身,而在 JOIN 路径、字段组合唯一性、隐藏差异值,以及 GROUP BY、窗口函数、ORDER BY 等语义冲突上。 在 SQL 排查里, DISTINCT 经常被拿来压重复,但子查询一旦参与 JOIN、排序或分组,结果就可能和预期完全相反。

SQL 子查询中 DISTINCT 为什么仍有重复数据

SQL 视图为什么无法直接插入数据

向 SQL 视图执行 INSERT 时,报错通常不是权限配置偶发失误,而是数据库在语义层面认定该视图不可更新。本文梳理常见报错、哪些定义会让视图失去可插入能力,以及单表视图仍失败的几个细节,最后说明 INSTEAD OF 触发器能做什么、又不能替代什么。

SQL 视图为什么无法直接插入数据

如何使用 Burp Suite 验证 SQL 注入漏洞

用 Burp Suite 验证 SQL 注入,关键不在“跑没跑扫描器”,而在能否通过 Repeater 和 Intruder 把响应差异抓实。本文按手工确认注入点、区分 Union 与盲注、批量跑布尔盲注、理解 Scanner 漏报四步展开,帮助你判断漏洞是否真实、属于哪一类、后续该怎么验证。

如何使用 Burp Suite 验证 SQL 注入漏洞

为什么 MyBatis 的 `${}` 会导致 SQL 注入

MyBatis 里的 `${}` 之所以危险,不在于语法本身少见,而在于它会把变量原样拼进 SQL,直接绕开 JDBC 预编译。本文从执行机制、典型注入方式和高危使用场景三部分说明问题,并给出项目里可落地的排查与约束思路。

为什么 MyBatis 的 `${}` 会导致 SQL 注入

SQL 如何在一次查询中统计多个业务指标

在一条 SQL 里同时统计多个业务指标,难点通常不在语法,而在指标语义是否彼此兼容。本文把几种常见写法拆开说明:什么时候该分子查询做去重统计,什么时候适合用 CASE WHEN、UNION ALL 或窗口函数,并点出 NULL、保留字和版本兼容这些容易踩坑的细节。

SQL 如何在一次查询中统计多个业务指标

如何避免 SQL 存储过程批量更新阻塞业务?

批量更新本身不可怕,真正拖垮业务的往往是事务过大、条件不走索引,以及分页策略选错。本文按“分批推进、索引命中、事务收口”三条主线,整理出更稳的存储过程写法,并点出 SQL Server、MySQL、PostgreSQL 各自容易踩的坑。

如何避免 SQL 存储过程批量更新阻塞业务?

SQL 如何按自然周分组统计订单数量

按自然周统计订单数量时,很多 SQL 写法会在周起点、首周定义和跨年边界上出错,导致出现“第0周”或周数错位。本文按 MySQL、PostgreSQL、SQL Server 分别说明正确分组方式,并给出跨年场景下更稳妥的 ISO 周处理思路。

SQL 如何按自然周分组统计订单数量

为什么 SQL CAST 函数转换日期会失败

SQL 里把字符串直接 `CAST` 成日期,看起来简单,实际最容易踩到数据库默认解析规则、非法日期静默失败和索引失效这三类坑。本文按常见查询场景拆开说明 SQL Server、PostgreSQL、MySQL 的差异,并给出更稳妥的写法。

为什么 SQL CAST 函数转换日期会失败

Ruby 安全编码指南:从常见漏洞到项目基线

这篇文章围绕 Ruby 开发中最常见的几类安全风险展开,覆盖 SQL 注入、XSS、CSRF、输入校验、密码存储与日志审计等重点场景。文章保留原有 Ruby/Rails 示例,并补充每类问题的判断思路,便于在项目里快速核对安全基线。

Ruby 安全编码指南:从常见漏洞到项目基线