問題タブ [app-transport-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - リリース構成で NSAppTransportSecurity を有効にし、デバッグ/ステージング構成で無効にする安全で信頼できる方法は?
質問はそれをすべて言います。
NSAllowsArbitraryLoads
まとめて使用できることは承知していますがNSExceptionDomains
、このブラックリストのアプローチに少し混乱しています。リストされている特定の本番ホストを除くすべてのATSを無効にしたくありませんNSExceptionDomains
。それらは変更される可能性があり、リストを管理する必要があるからです。一般的なアプリ構成とともに、本番用に 3 つ以上の異なるホスト タイプがあります。[もちろん、完璧な世界では、App Transport Security を無効にしたいホストをリストアップし、他のすべてのホストに対して有効にするよう Apple が提案してくれますが、そうではありません! 逆に]
また、ユーザー定義の設定$(MY_USER_SETTING)
(デバッグ/ステージング/リリースに対応する 3 つの異なる値をサポートできます) を継承しようとしましNSAppTransportSecurity
たが、辞書とNSAllowsArbitraryLoads
ブール値である文字列以外の型ではうまく機能しません。これらの値は継承されません。私のユーザー定義の設定。
背景: Charles Proxy を使用してデバッグ/ステージング構成の HTTP トラフィックを表示できるようにしたいのですが、iOS 9 では ATS を無効にする必要があり、これがリリース構成に影響を与えないようにしたいと考えています。 !
ios - クライアント SSL 証明書を使用して HTTP 403 エラーを生成する場合の iOS 9 のバグ
クライアント SSL 証明書を使用してバックエンド API と通信する際に、iOS 9 (2015 年 10 月 23 日時点のバージョン) でバグを発見したと思います。多くの REST サービスと同様に、API は 4xx エラー コードを生成してステータスを伝えます。それらの 1 つは、特定のクライアント ID がアクセスを許可されていないパスにクライアントがアクセスしようとした場合の 403 Forbidden エラーです。この HTTP エラーは、クライアント SSL 証明書が有効な接続をセットアップし、クライアント ID が認証された後に発生することに注意してください。
iOS 9 では、このシーケンスにより無効なクライアント SSL エラーが生成されます。
FAILED: Error Domain=NSURLErrorDomain Code=-1206 "The server “our.server.here” requires a client certificate."
(注: これは私のツイートのフォローアップです: https://twitter.com/ckmaresca/status/657576686318256128 - ほとんどの人がこれを検索する場所は SO だと思いました)
ios - アプリ トランスポート セキュリティの問題 iOS9
iOS9 シミュレーターでアプリを実行しようとした後、次の厄介な警告に直面しました
App Transport Security ポリシーでは安全な接続を使用する必要があるため、リソースを読み込めませんでした。
解決策をグーグルで検索した後、私はそれを見つけました。project's .plist
ファイルをソース コードとして開き、次の行を追加します。
ビルドをクリーンアップして実行しました-同様の警告が表示されました。その後、 iOS 9 で App Transport Security が有効になっている HTTP URL をロードするにはどうすればよいですか? に
リストされている他のさまざまなアプローチを試しました。
どれも機能しませんでした。
拒否リスクのアプローチですが、すべてのドメインを許可しようとしました。
それもうまくいきませんでした。plist
ファイルをどのように編集しても、Xcode 7.0.1 がこの構成をオーバーライドしているようです。
テーマに関するアドバイスをお待ちしております。
ios - iOS アプリの承認と ATS
レビューのためにアプリを送信しています。ただし、私のアプリは通常の HTTP (非 ssl) 接続を介してリクエストを行います。非 SSL 接続を使用するアプリは拒否されると聞きました。
私がまだ非 SSL 接続を使用している理由は、ほとんどの静的リソース (画像) がプレーンな http を介してプライベート cdn によって配布されており、すぐにアップグレードする予定がないためです。
これは正当な懸念事項ですか、それとも Apple が開発者に https の使用を奨励しているだけで、私が聞いたニュースは誇張されているのでしょうか?
ios - iOS App Transport Security の例外が機能しない
iOS 9.1 で自己署名 HTTPS サーバーに接続しようとしています。
私は使用しています:
そして、証明書が無効であるというエラーが表示されます。
考えられるすべてのトランスポート セキュリティ例外を追加しようとしましたが、現在の試みは次のとおりです。
私も試しましNSAllowsArbitraryLoads
たが、それでもうまくいきません。いくつかの .plist ファイル (ココアポッドとテスト) がありますが、正しいファイル (App/Supporting Files/Info.plist) にあると思います。
何が間違っている可能性がありますか?
ios - Xcode 7.1 を使用したアプリ トランスポート セキュリティ
私はまだこのエラーを受け取ります:「App Transport Security は安全でないため、クリアテキストの HTTP (http://) リソースの読み込みをブロックしました。一時的な例外は、アプリの Info.plist ファイルを介して構成できます。」ただし、同じものを使用しました他のプロジェクトでも同じソリューションで、うまくいきました。iPhoneシミュレーターでXcode 7.1を使用しています。
ios - call http:// が iOS 9 で機能しない
_kCFStreamErrorDomainKey=3、_kCFStreamErrorCodeKey=-9843、kCFStreamPropertySSLPeerCertificates={タイプ = 不変、カウント = 1、値 = ( 0 : )}}}、NSLocalizedDescription=このサーバーの証明書は無効です。「mobulous.co.in」になりすましたサーバーに接続している可能性があり、機密情報が危険にさらされる可能性があります。, NSErrorFailingURLKey=https://mobulous.co.in/twerck/Service/snapChat、NSErrorFailingURLStringKey= https://mobulous.co.in/twerck/Service/snapChat、NSErrorClientCertificateStateKey=0 } )
ios9 - myAppName-Info.plist の ATS オーバーライドが期待どおりに機能しない
2 年前に作成した古いアプリ (XCode 5.X または 6.X では、覚えていないと思います) を再開しました。これは、最終顧客がアプリのロゴを変更するように求めているためです。アプリを編集した後、再構築>実行シーケンスを実行すると、よく知られている「App Transport Security がクリアテキストの HTTP 何とか何とか...」をブロックしました...」というエラーが表示されます。この質問で説明したように、プロパティ エディター (またはその他) を使用して、myAppName-info.plist ファイルにオーバーライドを追加する必要があります。私はすでに他のいくつかのアプリでこのオーバーライドを行っていたので、ATS エラーなしでアプリを実行できると思っていましたが、取得し続けました。そのため、いくつかのさまざまな試みの後、プロジェクトから「myAppName-info.plist」ファイルを完全に削除しようとしました。ビルド段階で大きな赤い感嘆符が表示されることを期待しています。何もない。すべてがスムーズに実行されます。また (.plist ファイルを削除する前に)、これらのフィールドにいくつかの入力ミスを追加しようとしました (たとえば、「App Transport Security Settini」と書きます) が、やはりエラーは発生しませんでした。
問題は、なぜこの動作なのかということです。私は何を間違っていますか?これは、新しいアプリに「myAppName-info.plist」ファイルではなく「info.plist」ファイルしかないという事実と関係がありますか?