我听说分离的SQL子句和args可以防止SQL注入。例如,
clause = SELECT * WHERE ID = ? AND NAME = ?
ID = 23,NAME =“Tom”。
有人可以向我解释它是如何运作的吗?
答案 0 :(得分:1)
基本上,您可以非常清楚地区分数据和实际代码(查询部分)。您告诉SQL服务器:这显然是数据,这显然是代码。
通过这种方式,您基本上可以跳过服务器必须从查询中分离代码和数据的部分,因此服务器无法在查询过程中误解数据位。
编辑:根据评论中的链接,这个answer pretty much answers your question比我在这里解释的要好得多。