Zoeken…


parameters

Parameter Details
NSAppTransportSecurity Configureer ATS
NSAllowsArbitraryLoads Stel in op YES om ATS overal uit te schakelen. In iOS 10 en hoger en macOS 10.12 en hoger wordt de waarde van deze sleutel genegeerd als een van de volgende sleutels aanwezig is in het Info.plist-bestand van uw app: NSAllowsArbitraryLoadsInMedia, NSAllowsArbitraryLoadsInWebContent, NSAllowsLocalNetworking
NSAllowsArbitraryLoadsInMedia Stel in op YES om ATS uit te schakelen voor media die zijn geladen met API's uit het AV Foundation-framework. (iOS 10+, macOS 10.12+)
NSAllowsArbitraryLoadsInWebContent Stel in op YES om ATS uit te schakelen in de webweergaven van uw app ( WKWebView , UIWebView , WebView ) zonder uw NSURLSession-verbindingen te beïnvloeden. (iOS 10+, macOS 10.12+)
NSAllowsLocalNetworking Stel in op YES om uit te schakelen voor verbindingen met niet-gekwalificeerde domeinen en .local-domeinen. (iOS 10+, macOS 10.12+)
NSExceptionDomains Configureer uitzonderingen voor specifieke domeinen
NSIncludesSubdomains Stel in op YES om de uitzonderingen toe te passen op alle subdomeinen van het geselecteerde domein.
NSRequiresCertificateTransparency Stel in op YES om te eisen dat geldige, ondertekende Certificate Transparency (CT) tijdstempels, van bekende CT-logs, worden gepresenteerd voor server (X.509) certificaten op een domein. (iOS 10+, macOS 10.12+)
NSExceptionAllowsInsecureHTTPLoads Stel in op YES om HTTP toe te staan op het geselecteerde domein.
NSExceptionRequiresForwardSecrecy Standaard ingesteld op YES ; Zet op NO om Forward Secrecy uit te schakelen en meer cijfers te accepteren.
NSExceptionMinimumTLSVersion Standaard ingesteld op TLSv1.2 ; Mogelijke waarden zijn: TLSv1.0 , TLSv1.1 , TLSv1.2
NSThirdPartyExceptionAllowsInsecureHTTPLoads Vergelijkbaar met NSExceptionAllowsInsecureHTTPLoads , maar voor domeinen waarover u geen controle hebt
NSThirdPartyExceptionRequiresForwardSecrecy Vergelijkbaar met NSExceptionRequiresForwardSecrecy , maar voor domeinen waarover u geen controle hebt
NSThirdPartyExceptionMinimumTLSVersion Vergelijkbaar met NSExceptionMinimumTLSVersion , maar voor domeinen waarover u geen controle hebt

Opmerkingen

De App Transport Security is een beveiligingsfunctie in iOS en macOS. Het voorkomt dat apps onbeveiligde verbindingen tot stand brengen. Standaard kunnen apps alleen beveiligde HTTPS-verbindingen gebruiken.

Als een app via HTTP verbinding moet maken met een server, moeten uitzonderingen worden gedefinieerd in de Info.plist . (zie de voorbeelden voor meer informatie daarover)

Opmerking: in 2017 zal Apple ATS afdwingen. Dat betekent dat u niet langer apps kunt uploaden waarvoor ATS-uitzonderingen zijn gedefinieerd in de Info.plist . Als u goede argumenten kunt geven, waarom u HTTP moet gebruiken, kunt u contact opnemen met Apple en zij kunnen u toestaan uitzonderingen te definiëren. (Bron: WWDC 2016 - Sessie 706 )

Meer informatie over de configuratie van App Transport Security is te vinden in de CocoaKeys-documentatie .

Laad alle HTTP-inhoud

Apple introduceerde ATS met iOS 9 als een nieuwe beveiligingsfunctie om de privacy en beveiliging tussen apps en webservices te verbeteren. ATS mislukt standaard alle niet-HTTPS-aanvragen. Hoewel dit erg leuk kan zijn voor productieomgevingen, kan het tijdens het testen hinderlijk zijn.

ATS wordt geconfigureerd in het Info.plist bestand van het NSAppTransportSecurity met het NSAppTransportSecurity woordenboek ( App Transport Security Settings in de Xcode Info.plist-editor). Om alle HTTP-inhoud toe te staan, voegt u de Boolean Allow Arbitrary Loads NSAllowsArbitraryLoads Allow Arbitrary Loads ( NSAllowsArbitraryLoads ) toe en stelt u deze in op YES . Dit wordt niet aanbevolen voor productie-apps en als HTTP-inhoud vereist is, wordt aanbevolen om deze in plaats daarvan selectief in te schakelen.

Laad HTTP-inhoud selectief

Net als bij het inschakelen van alle HTTP-inhoud, vindt alle configuratie plaats onder de App Transport Security Settings . Voeg het woordenboek Exception Domains ( NSExceptionDomains ) toe aan de ATS-instellingen op het hoogste niveau.

Voeg voor elk domein een woordenboekitem toe aan de uitzonderingsdomeinen, waarbij de sleutel het betreffende domein is. Stel NSExceptionAllowsInsecureHTTPLoads op YES om de HTTPS-vereiste voor dat domein uit te schakelen.

Eindpunten vereisen SSL

Geïntroduceerd in iOS 9, moeten alle eindpunten voldoen aan de HTTPS-specificatie.
Alle eindpunten die geen SSL gebruiken, mislukken met een waarschuwing in het consolelogboek. Voor uw toepassing lijkt het erop dat de internetverbinding is mislukt.

Uitzonderingen configureren: plaats het volgende in uw Info.plist-bestand:

  1. Laat bepaald domein (testdomain.com) alleen:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
    <key>testdomain.com</key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
    </dict>
</dict>

De sleutel die dergelijk gedrag toestaat, is NSExceptionAllowsInsecureHTTPLoads . In dit geval staat de app alleen HTTP-verbinding toe met het genoemde domein (testdomein.nl) en worden alle andere HTTP-verbindingen geblokkeerd.

De sleutel NSIncludesSubdomains geeft aan dat alle subdomeinen van het genoemde domein (testdomein.com) ook moeten worden toegestaan.

  1. Elk domein toestaan:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

In dit geval staat de app een HTTP-verbinding met elk domein toe. Vanaf 1 januari 2017 zorgt het gebruik van deze vlag voor een grondige beoordeling van de App Store en moeten de app-ontwikkelaars uitleggen waarom ze deze uitzondering in de eerste plaats moeten gebruiken. Mogelijke verklaringen zijn:

  • Een applicatie die gecodeerde media-inhoud laadt die geen gepersonaliseerde informatie bevat.
  • Verbindingen met apparaten die niet kunnen worden opgewaardeerd om beveiligde verbindingen te gebruiken.
  • Verbinding met een server die wordt beheerd door een andere entiteit en geen beveiligde verbindingen ondersteunt.


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow