如何转义NSString以防止SQL注入与核心数据

从input字段中转义searchstring以防止SQL注入的最佳方法是什么?

有没有像PHP中的mysql_real_escape_string方法,或者我应该手动replace/转义不同的字符: OR, AND, LIKE, WHERE, DELETE, INSERT, UPDATE, FROM, GROUP BY, ORDER BY等等?

closures的答案来自@尼克·韦弗:

我不认为你必须关心这一点。

使用mysql_real_escape_string作为search查询是一个不错的select。 但是你需要知道两件事情:

1)如果您在其他情况下应用此解决scheme,请确保参数在集成时始终引用。 简而言之,mysql_real_escape_string不会保护您免受数字参数的影响。 这里有两个例子:

 $bad_sql = "SELECT * FROM some_table WHERE id=" . mysql_real_escape_string($_GET['id']); $good_sql = "SELECT * FROM some_table WHERE name='" . mysql_real_escape_string($_GET['id']) . "'"; 

2)第二件要考虑的事情是mysql_real_escape_string不能转义通配符(%和_)。 你不应该担心这个。 然而,一个“完美的”解决scheme逃避这些angular色。

欲了解更多信息,你可以看看http://www.sqlinjection.net

仅供参考:官方的mysql_real_escape_string引用http://php.net/manual/en/function.mysql-real-escape-string.php