预编译能防止SQL注入是因为在运行程序第一次操作数据库之前,SQL语句已经被数据库分析、编译和优化,而且对应的执行计划也会将sql缓存下来,并允许数据库以参数化的形式进行查询,当运行时会动态地把参数传给PreprareStatement,即使参数里有敏感字符,如:“or '1=1'”,也会被数据库作为一个参数或者一个字段的属性值来处理,而不是作为一个SQL指令来运行。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:sql预编译怎么防sql注入