Ios 如何转义NSString以防止核心数据的SQLInjection
从输入字段中转义搜索字符串以防止SQLInjection的最佳方法是什么Ios 如何转义NSString以防止核心数据的SQLInjection,ios,sql-injection,Ios,Sql Injection,从输入字段中转义搜索字符串以防止SQLInjection的最佳方法是什么 是否有像PHP中那样的mysql\u real\u escape\u string方法,或者我应该手动替换/转义不同的字符,如:或者,像,WHERE,DELETE,INSERT,UPDATE,FROM,GROUP BY,ORDER BY等等 使用mysql\u real\u escape\u字符串进行搜索查询是一个不错的选择。但是,您需要注意两件事: 1) 如果在其他情况下应用此解决方案,请确保在集成参数时始终引用该参数。
是否有像PHP中那样的
mysql\u real\u escape\u string
方法,或者我应该手动替换/转义不同的字符,如:或者,像,WHERE,DELETE,INSERT,UPDATE,FROM,GROUP BY,ORDER BY
等等 使用mysql\u real\u escape\u字符串进行搜索查询是一个不错的选择。但是,您需要注意两件事:
1) 如果在其他情况下应用此解决方案,请确保在集成参数时始终引用该参数。简而言之,mysql\u real\u escape\u字符串不能保护您免受数值参数的影响。以下是两个示例:
$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)要考虑的第二件事是MySqLRealOracle EnvieScript字符串不能避免通配符(%和π)。你不应该为此担心。然而,一个“完美”的解决方案避开了这些角色
有关更多信息,请查看仅供参考:官方mysql\u real\u escape\u字符串参考。最后给出的答案是:@Nick Weaver:
我认为你不必在意那件事
我认为你不必担心这个。可能的复制品也如尼克所说——你试过注射吗?我可以想象像CoreData这样的框架在使用sqlite时会使用params,从而消除sql注入。我不需要PHP sql escapingAlso,即使在PHP中也不要使用它。mysql转义函数长期以来遭受各种unicode攻击。始终使用准备好的语句,没有例外