一般的说,在java环境中,使用java.sql.Statement可能导致sql注入,而使用java.sql.PreparedStatement可以避免这个问题。
今天做了个实验,发现Statement也是没那么容易注入的,在jdbc url里面必须配置[color=red]allowMultiQueries=true[/color],例如jdbc:mysql:///demo?autoReconnect=true&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true。否则select id,name from tb_demo where name like '%name'; delete from tb_demo;%' 这样的语句是无法执行的。
今天做了个实验,发现Statement也是没那么容易注入的,在jdbc url里面必须配置[color=red]allowMultiQueries=true[/color],例如jdbc:mysql:///demo?autoReconnect=true&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true。否则select id,name from tb_demo where name like '%name'; delete from tb_demo;%' 这样的语句是无法执行的。