gpt4 book ai didi

iphone - 如何防止Core Data中出现 "SQL Injection"?

转载 作者:行者123 更新时间:2023-12-03 19:32:28 25 4
gpt4 key购买 nike

我正在多次迭代中构建一个非常复杂的谓词,并且希望立即在谓词中提供匹配值。

而不是:

[NSPredicate predicateWithFormat:@"departmentName like[c] %@"];

我想做:

NSString *str = [NSString stringWithFormat:@"部门名称如[c] '%@'", 部门名称];[NSPredicate predicateWithFormat:str];

由于这是一个愚蠢的替换,我想有可能通过输入垃圾来意外“破解”谓词。

我找不到任何可以为我“神奇地引用”该值的东西。

原因是,我需要在多次迭代中构建一个复杂的谓词,所以我必须构造一个大的谓词字符串。模板不适用于 SUBQUERY。因此,我需要立即在字符串中提供值,因为我不想根据谓词格式有多少个值来进行 20 个不同的谓词初始化。

最佳答案

直接使用NSComparisonPredicate,绕过谓词格式问题。

NSPredicate *fetchPredicate = [NSComparisonPredicate predicateWithLeftExpression:[NSExpression expressionForKeyPath:@"departmentName"]
rightExpression:[NSExpression expressionForConstantValue:searchTerm]
modifier:NSDirectPredicateModifier
type:NSLikePredicateOperatorType
options:0];

阅读 Predicate Programming Guide “直接在代码中创建谓词”,并检查 NSComparisonPredicate 的类引用

关于iphone - 如何防止Core Data中出现 "SQL Injection"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3076894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com