当 $id 直接来自请求时,为什么类似 SELECT ... WHERE user_id = '$id' 的查询存在漏洞?
$id
SELECT ... WHERE user_id = '$id'
未经验证的输入被拼接到 SQL 中,因此可以改变查询语法
变量名 $id 被数据库保留
将值放在单引号之间会自动使其安全
每条 SQL SELECT 语句都允许执行任意操作系统命令
SELECT