确保HTTP不能与NSImage initWithContentsOfUrl(以及其他此类API)一起使用



我有从网站同步加载图像的代码:

NSURL* url = [NSURL URLWithString:[NSString stringWithCString:urlString encoding:NSUTF8StringEncoding]];
returnImage = [[NSImage alloc] initWithContentsOfURL:url];

还有这个代码同步加载一个文件。

NSURL * url = [NSURL URLWithString:[NSString stringWithCString:pURL encoding:NSUTF8StringEncoding]];
NSError * error;
NSData * dataFromFileAtURL = [NSData dataWithContentsOfURL:url options:NSDataReadingUncached error:&error];

顺便说一句,我刚刚发现不推荐使用dataFromContentsOfUrl,我想我会将其更改为使用[NSURLConnection sendSynchronousRequest]。但就目前而言,这就是代码,我怀疑我的问题适用于任何一个版本。

两者都正确地从互联网下载文件,并且都拒绝下载不安全的http:链接。拒绝不安全的联系是我需要的行为,所以一个比我更信任的人可能会认为我已经完了。但我找不到任何文件可以保证他们会被拒绝。我担心在某些情况下,这些API可能会接受不安全的链接。是否有关于如何控制这种情况的文档?谷歌搜索并没有取得丰硕成果。

NSAppTransportSecurity文档和"防止不安全网络连接"文档中记录了此行为。这些文件解释了ATS在哪里应用,它执行什么规则,以及如何启用这些规则的例外情况。

最新更新