"凌晨3点,我盯着生产环境突然飙升的CPU使用率,手指颤抖着打开慢查询日志——几十条本该毫秒级响应的查询竟执行了5秒以上!当看到WHERE 1=1这个熟悉的写法时,我狠狠扇了自己一耳光..."(痛点共鸣)作为10年码龄的老司机,我也曾在动态拼接SQL时随手写下WHERE 1=1。
SQL 注入是发生在 Web 程序中数据库层的安全漏洞,是网站存在最多也是最简单的漏洞。例如:SELECT COUNT AS 'num' FROM game_score WHERE game_id=24411 AND version=$version。
对应的sql:select * from table where id=3’ 这时sql语句出错,程序无法正常从数据库中查询出数据,就会抛出异常;id=1 and 1=2 union select 2,password from admin。