if __name__ == '__main__':
main()
执行上面程序,在输入商品时,我们输入" or 1=1 or " (双引号也要输入),这样与我们底层写好的查询语句进行拼接,如下,拼接后的sql就变成了select * from goods where name="" or 1=1 or "",这是一个恒成立的where子句,所以可以获取该表中所有数据。
Process finished with exit code 0
当然,之所以有sql注入,还是我们在开发的时候相当于留下了“漏洞”,才让别人有机可乘。比如python操作mysql,实际开发中我们不要写这种拼接的形式,而是要将查询语句参数化,就可以避免sql注入了。因为execute(),实现了反sql注入功能。