不要将撇号(')存储在数据库中的字符字段中,而是始终将撇号转换为某些唯一的替代符号,这些符号不能被识别为SQL语法,而且不可能在数据中常见或有意义。当接收到直接的用户输入,如从GET,POST等,始终过滤掉任何撇号的值,通过翻译到您选择的替代符号。
对于包含用户输入的所有SQL语句,始终将撇号环绕在文字值上。这应该迫使所有非撇号字符被视为文字值本身的一部分,而不管它们是反引号、大括号、分号、反斜杠、正斜杠等等,所以像SELECT Name FROM Client WHERE TYPE = ' --