参数化查询是否删除保留关键字和符号
Does parameterized query remove reserved keyword and symbols
如果是这样,如果我的 varchar 包含;或 [ 或 keyward "Create" 会被自动删除?我不认为这很简单,避免 sql 注入的参数化机制是什么?
不,它不会删除任何字符。相反,它将这些字符 视为值 而不是代码。如果您传入一个带有分号或引号或任何其他有意义的 character/keyword 的字符串,那么您只会得到一个包含该分号或引号或关键字的字符串值。
如果您将查询构建为原始字符串,而不是使用参数化查询,那么您需要确保字符被适当转义以具有相同的行为,这是一项非常重要的任务(如果你想支持每一种可能性)这就是为什么存在参数化查询来为你处理它。
如果是这样,如果我的 varchar 包含;或 [ 或 keyward "Create" 会被自动删除?我不认为这很简单,避免 sql 注入的参数化机制是什么?
不,它不会删除任何字符。相反,它将这些字符 视为值 而不是代码。如果您传入一个带有分号或引号或任何其他有意义的 character/keyword 的字符串,那么您只会得到一个包含该分号或引号或关键字的字符串值。
如果您将查询构建为原始字符串,而不是使用参数化查询,那么您需要确保字符被适当转义以具有相同的行为,这是一项非常重要的任务(如果你想支持每一种可能性)这就是为什么存在参数化查询来为你处理它。