在我的应用程序中,我使用以下类型的代码来破坏用户代理:
// Fake Firefox's user agent during web service's registration
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Mozilla/5.0 (compatible; Windows; U; Windows NT 6.2; WOW64; en-US; rv:12.0) Gecko/20120403211507 Firefox/12.0", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
// Return to standard iOS user agent when web service registration is done
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
我的应用程序的一部分允许用户使用其"注册帐户"页面注册Web服务,而我能找到的唯一方法可以防止其网站自动启动显示"下载我们的应用程序!"的页面是因此使用用户代理字符串。 我尝试在NSMutableURLRequest
中设置用户代理,但我根本没有让它工作。(是的,我尝试在NSMutableURLRequest
中同时设置"用户代理"和"User_Agent"。
我听说这可能会让你的应用程序被拒绝。 任何人都可以确认或否认,或提供任何评论吗? 谢谢!
- App Store上有多个应用程序也伪造了用户代理。
- 设置 NSLocalizedString 语言的所有解决方法 在 NSUserDefaults 中也为 Apple 密钥设置一个自定义值
所以我不认为苹果会拒绝你的应用程序。
我们在应用中使用自定义用户代理,作为服务器知道应用正在调用的一种方式,并传递额外数据,例如,应用是否具有视网膜屏幕。只要您不依赖此安全性,它就可以很好地工作。结果,没有任何东西被拒绝。