Buscar..


Parámetros

Parámetro Detalles
NSAppTransportSecurity Configurar ATS
NSAllowsArbitraryLoads Establézcalo en YES para deshabilitar ATS en todas partes. En iOS 10 y versiones posteriores, y macOS 10.12 y versiones posteriores, el valor de esta clave se ignora si alguna de las siguientes claves está presente en el archivo Info.plist de su aplicación: NSAllowsArbitraryLoadsInMedia, NSAllowsArbitraryLoadsInWebContent, NSAllowsLocalNetworking
NSAllowsArbitraryLoadsInMedia Configúrelo en YES para deshabilitar ATS para los medios cargados mediante las API del marco de AV Foundation. (iOS 10+, macOS 10.12+)
NSAllowsArbitraryLoadsInWebContent Establézcalo en YES para deshabilitar ATS en las vistas web de su aplicación ( WKWebView , UIWebView , WebView ) sin afectar sus conexiones NSURLSession. (iOS 10+, macOS 10.12+)
NSAllowsLocalNetworking Establézcalo en YES para deshabilitar las conexiones a dominios no calificados y a dominios locales. (iOS 10+, macOS 10.12+)
NSExceptionDomains Configurar excepciones para dominios específicos
NSIncludesSubdomains Establézcalo en YES para aplicar las excepciones a todos los subdominios del dominio seleccionado.
NSRequiresCertificateTransparency Establézcalo en YES para requerir que las marcas de tiempo de Transparencia de certificado (CT) válidas, firmadas, de registros de CT conocidos, se presenten para certificados de servidor (X.509) en un dominio. (iOS 10+, macOS 10.12+)
NSExceptionAllowsInsecureHTTPLoads Establézcalo en YES para permitir HTTP en el dominio seleccionado.
NSExceptionRequiresForwardSecrecy El valor predeterminado es YES ; Establézcalo en NO para deshabilitar el secreto de reenvío y acepte más cifrados.
NSExceptionMinimumTLSVersion El valor predeterminado es TLSv1.2 ; Los valores posibles son: TLSv1.0 , TLSv1.1 , TLSv1.2
NSThirdPartyExceptionAllowsInsecureHTTPLoads Similar a NSExceptionAllowsInsecureHTTPLoads , pero para dominios sobre los que no tiene control
NSThirdPartyExceptionRequiresForwardSecrecy Similar a NSExceptionRequiresForwardSecrecy , pero para dominios sobre los que no tiene control
NSThirdPartyExceptionMinimumTLSVersion Similar a NSExceptionMinimumTLSVersion , pero para dominios sobre los que no tiene control

Observaciones

La App Transport Security es una característica de seguridad en iOS y macOS. Evita que las aplicaciones establezcan conexiones no seguras. Por defecto, las aplicaciones solo pueden usar conexiones seguras HTTPS.

Si una aplicación necesita conectarse a un servidor a través de HTTP, las excepciones deben definirse en la Info.plist . (ver los ejemplos para más información sobre eso)

Nota: En 2017, Apple hará cumplir ATS. Eso significa que ya no puede cargar aplicaciones que tengan excepciones ATS definidas en la Info.plist . Si puede proporcionar buenos argumentos, por qué tiene que usar HTTP, puede ponerse en contacto con Apple y es posible que le permitan definir excepciones. (Fuente: WWDC 2016 - Sesión 706 )

Puede encontrar más información sobre la configuración de la Seguridad de transporte de la aplicación en la Documentación de CocoaKeys .

Cargar todo el contenido HTTP

Apple presentó ATS con iOS 9 como una nueva característica de seguridad para mejorar la privacidad y la seguridad entre las aplicaciones y los servicios web. ATS por defecto falla todas las solicitudes que no son HTTPS. Si bien esto puede ser realmente bueno para los entornos de producción, puede ser una molestia durante las pruebas.

ATS se configura en el archivo Info.plist del Info.plist con el diccionario NSAppTransportSecurity ( App Transport Security Settings en el editor de Xcode Info.plist). Para permitir todo el contenido HTTP, agregue el booleano Allow Arbitrary Loads ( NSAllowsArbitraryLoads ) y NSAllowsArbitraryLoads en YES . Esto no se recomienda para aplicaciones de producción, y si se requiere contenido HTTP, se recomienda que se habilite selectivamente en su lugar.

Cargar selectivamente contenido HTTP

Al igual que para habilitar todo el contenido HTTP, toda la configuración se realiza bajo la App Transport Security Settings la App Transport Security Settings . Agregue el diccionario de Exception Domains ( NSExceptionDomains ) a la configuración ATS de nivel superior.

Para cada dominio, agregue un elemento del diccionario a los Dominios de excepción, donde la clave es el dominio en cuestión. Establezca NSExceptionAllowsInsecureHTTPLoads en YES para deshabilitar el requisito de HTTPS para ese dominio.

Los puntos finales requieren SSL

Introducido en iOS 9, todos los puntos finales deben cumplir con la especificación HTTPS.
Cualquier punto final que no use SSL fallará con una advertencia en el registro de la consola. A su aplicación le parecerá que la conexión a internet falló.

Para configurar excepciones: coloque lo siguiente en su archivo Info.plist:

  1. Permitir dominio particular (testdomain.com) solamente:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
    <key>testdomain.com</key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
    </dict>
</dict>

La clave que permite tal comportamiento es NSExceptionAllowsInsecureHTTPLoads . En este caso, la aplicación solo permitirá la conexión HTTP al dominio mencionado (testdomain.com) y bloqueará todas las demás conexiones HTTP.

La clave NSIncludesSubdomains especifica que también se debe permitir cualquier subdominio del dominio mencionado (testdomain.com).

  1. Permitir cualquier dominio:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

En este caso, la aplicación permitirá la conexión HTTP a cualquier dominio. A partir del 1 de enero de 2017, el uso de este indicador causará una revisión exhaustiva de la App Store y los desarrolladores de aplicaciones tendrán que explicar por qué necesitan usar esta excepción en primer lugar. Las posibles explicaciones incluyen:

  • Una aplicación que carga contenido multimedia encriptado que no contiene información personalizada.
  • Conexiones a dispositivos que no pueden actualizarse para usar conexiones seguras.
  • Conexión a un servidor que es administrado por otra entidad y no admite conexiones seguras.


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow