Sök…


parametrar

Parameter detaljer
NSAppTransportSecurity Konfigurera ATS
NSAllowsArbitraryLoads Ställ in på YES att inaktivera ATS överallt. I iOS 10 och senare, och macOS 10.12 och senare, ignoreras värdet på denna nyckel om någon av följande nycklar finns i appens Info.plist-fil: NSAllowsArbiticialLoadsInMedia, NSAllowsArbiticialLoadsInWebContent, NSAllowsLocalNetworking
NSAllowsArbitraryLoadsInMedia Ställ in på YES att inaktivera ATS för media som laddas med API: er från AV Foundation-ramverket. (iOS 10+, macOS 10.12+)
NSAllowsArbitraryLoadsInWebContent Ställ in på YES att inaktivera ATS i din WKWebView UIWebView ( WKWebView , UIWebView , WebView ) utan att det påverkar dina NSURLSession-anslutningar. (iOS 10+, macOS 10.12+)
NSAllowsLocalNetworking Ställ in på YES att inaktivera för anslutningar till okvalificerade domäner och till. Lokala domäner. (iOS 10+, macOS 10.12+)
NSExceptionDomains Konfigurera undantag för specifika domäner
NSIncludesSubdomains Ställ in på YES att tillämpa undantagen på alla underdomäner för den valda domänen.
NSRequiresCertificateTransparency Ställ in på YES att kräva att giltiga, signerade certifikattransparens (CT) -tidsstämplar, från kända CT-loggar, presenteras för servercertifikat (X.509) på en domän. (iOS 10+, macOS 10.12+)
NSExceptionAllowsInsecureHTTPLoads Ställ in på YES att tillåta HTTP på den valda domänen.
NSExceptionRequiresForwardSecrecy Standardvärdet för YES ; Ställ in på NO att inaktivera Forward Secrecy och acceptera fler cifrar.
NSExceptionMinimumTLSVersion Standardvärdet för TLSv1.2 ; Möjliga värden är: TLSv1.0 , TLSv1.1 , TLSv1.2
NSThirdPartyExceptionAllowsInsecureHTTPLoads Liknar NSExceptionAllowsInsecureHTTPLoads , men för domäner som du inte har någon kontroll över
NSThirdPartyExceptionRequiresForwardSecrecy Liknar NSExceptionRequiresForwardSecrecy , men för domäner som du inte har någon kontroll över
NSThirdPartyExceptionMinimumTLSVersion Liknar NSExceptionMinimumTLSVersion , men för domäner som du inte har någon kontroll över

Anmärkningar

App Transport Security är en säkerhetsfunktion i iOS och macOS. Det förhindrar appar från att upprätta osäkra anslutningar. Som standard kan appar bara använda säkra HTTPS-anslutningar.

Om en app måste ansluta till en server via HTTP måste undantag definieras i Info.plist . (se exemplen för mer information om det)

Obs: Apple verkställer ATS 2017. Det betyder att du inte längre kan ladda upp appar som har ATS-undantag definierade i Info.plist . Om du kan ge bra argument, varför du måste använda HTTP, kan du kontakta Apple och de kan låta dig definiera undantag. (Källa: WWDC 2016 - session 706 )

Mer information om konfigurationen av App Transport Security finns i CocoaKeys-dokumentationen .

Ladda allt HTTP-innehåll

Apple introducerade ATS med iOS 9 som en ny säkerhetsfunktion för att förbättra sekretess och säkerhet mellan appar och webbtjänster. ATS misslyckas som standard alla icke-HTTPS-förfrågningar. Även om detta kan vara riktigt trevligt för produktionsmiljöer, kan det vara en olägenhet under testning.

ATS konfigureras i målets Info.plist fil med NSAppTransportSecurity ordlistan ( App Transport Security Settings i Xcode Info.plist-redigeraren). Så att alla HTTP innehåll, tillsätt Allow Arbitrary Loads Boolean ( NSAllowsArbitraryLoads ) och ställ in den på YES . Detta rekommenderas inte för produktionsappar, och om HTTP-innehåll krävs rekommenderas det att det är selektivt aktiverat istället.

Ladda selektivt HTTP-innehåll

På samma sätt som att aktivera allt HTTP-innehåll sker all konfiguration under App Transport Security Settings . Tillsätt Exception Domains ordbok ( NSExceptionDomains ) till inställningarna toppnivå ATS.

Lägg till ett ordbokspost för varje domän till undantagsdomänerna, där nyckeln är domänen i fråga. Ställ in NSExceptionAllowsInsecureHTTPLoads till YES att inaktivera HTTPS-kravet för den domänen.

Endpoints kräver SSL

Introducerad i iOS 9 måste alla slutpunkter följa HTTPS-specifikationen.
Eventuella slutpunkter som inte använder SSL kommer att misslyckas med en varning i konsolloggen. För din ansökan verkar det som om internetanslutningen misslyckades.

Så här konfigurerar du undantag: Placera följande i din Info.plist-fil:

  1. Tillåta viss domän (testdomain.com) endast:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
    <key>testdomain.com</key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
    </dict>
</dict>

Nyckeln som tillåter sådant beteende är NSExceptionAllowsInsecureHTTPLoads . I detta fall tillåter app endast HTTP-anslutning till nämnda domän (testdomain.com) och blockerar alla andra HTTP-anslutningar.

Nyckeln NSIncludesSubdomains anger att alla och alla underdomäner i den nämnda domänen (testdomain.com) också ska vara tillåtna.

  1. Tillåt alla domäner:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

I detta fall tillåter app HTTP-anslutning till alla domäner. Från och med 1 januari 2017 kommer användningen av denna flagga att ge en grundlig granskning av App Store och apputvecklarna måste förklara varför de måste använda detta undantag i första hand. Möjliga förklaringar inkluderar:

  • En applikation som laddar krypterat medieinnehåll som inte innehåller personlig information.
  • Anslutningar till enheter som inte kan uppgraderas för att använda säkra anslutningar.
  • Anslutning till en server som hanteras av en annan enhet och som inte stöder säkra anslutningar.


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow