为什么sqlite3里用"?"作占位符就能防止sql注入?

发布于 2022-09-02 01:44:47 字数 115 浏览 21 评论 0

sqlite3操作数据库的时候cur.execute('insert into t values (%d)'% num) 会被sql注入,但把占位符该成?就不会了.那问题来了,这个?到底做了什么才防止了sql注入呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

勿忘心安 2022-09-09 01:44:47

?会把参数当做值来处理,不管参数是什么,都把它插入表就完事。
而直接的字符串拼接是把参数当做SQL语句的一部分,参数中有SQL语句的话,是有可能被执行的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文