阻塞查询命令是否足以防止 SQL 注入?

Is blocking query commands enough to prevent SQL injection?

我是数据库领域的初学者,我即将了解如何使用查询的自由文本输入通过 SQL 注入来破坏数据库。

实际上,the relevant xckd 总结得很完美:

这幅漫画暗示如果我不允许用户形成包含 SQL 命令的任何类型的输入(例如 DROPUPDATEINSERT INTO , 等) 然后 "illegal" SQL 查询无法完成。

有什么想念的吗?或者我是对的?

您不必禁止输入所有 SQL 命令,您只需要确保它们只被视为自由文本,这样它们就不会被意外地作为命令执行。

这可能是一个很好的起点:

https://en.wikipedia.org/wiki/SQL_injection