問題タブ [android-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.
java - 別の Android アプリケーションからパブリック オブジェクトへのアクセスを取得する
後者のアプリケーションが最初のアプリケーションのソースコードを持っている場合、パブリッククラスまたはそのパブリック(静的)メソッド/パブリック変数のいずれかが別のアプリケーションによってアクセス/呼び出される可能性はありますか?
または、少なくとも、ルート化されたデバイスでは、RAM から値を決定することは可能ですか?
android - Android デバイスで文字列を安全に隠す
問題: SECRET キー (文字列) をデバイスのローカルに保存する必要があります。これを合理的に行うにはどうすればよいですか?
ローカルに保存されているものを 100% 安全に非公開にすることは不可能ですが、誰かが秘密鍵を抽出するのをできるだけ難しくしたいと考えています。私のオプションは何ですか?
要件
- 関連する UI 操作はありません。
- 秘密鍵は簡単な方法で抽出可能であってはなりません。
可能な解決策
難読化
Android KeyChain クラス http://developer.android.com/reference/android/security/KeyChain.html http://nelenkov.blogspot.com/2011/11/using-ics-keychain-api.html
KeyChain はユーザーの操作が必要なため、機能しないと思います。
ssl - Google Play の警告: WebViewClient.onReceivedSslError ハンドラ
最近、Google から次の件名のメールを受け取りました:「Google Play の警告: SSL エラー ハンドラーの脆弱性」。このメールで Google は、私のアプリには [" WebViewClient.onReceivedSslErrorハンドラーの安全でない実装があることを説明しています。具体的には、実装はすべての SSL 証明書の検証エラーを無視するため、アプリは中間者攻撃に対して脆弱になります。攻撃者は、影響を受ける WebView のコンテンツを変更し、送信されたデータ (ログイン資格情報など) を読み取り、JavaScript を使用してアプリ内でコードを実行します。"] ...................
私は自分のコードで使用しています:
// 私のコード
Google Play が SSL に関してこの警告を送信するのはなぜですか? これは私のコードの問題ですか、それとも PayUMoney の問題ですか?
android - Android Webview で証明書エラーを処理し、証明書の設定をクリアする
Android Webview で SSL 証明書エラーを処理する適切な方法を見つけようとしています。私の目標は、SSL 証明書エラーのあるページを読み込む方法を提供することですが、ユーザーが証明書エラーのある URL を読み込もうとするたびにセキュリティについて警告した後、ページを読み込むことを選択できるようにすることです。
スレッドで見つけた最も近い解決策は、次のように WebViewClient をオーバーライドすることを提案しています。
ただし、これは基本的に、ユーザーの同意なしに WebView で SSL を無効にします。
参考までに、その解決策を見つけたスレッドを次に示します。
Android WebView SSL の「セキュリティ警告」
Android の Web ビューは SSL をサポートしていますか?
Android WebView が HTTPS URL をロードしない
Android で WIFI を使用している場合、URL のロード後に Web ビューに空白/白いページが表示される
Android WebView で特定の Web ページを読み込めません
Android WebView は、https から http へのリダイレクトをブロックします
私は先に進み、ユーザーにプロンプトを表示するわずかに異なるバージョンを実装しました:
この実装では、ページをロードするかどうかをユーザーに 2 回尋ねます。ユーザーが 2 回はいと言った場合、エラーは無視されてページがロードされます。それ以外の場合、ページのロードはキャンセルされます。
証明書エラーがロードされた URL が最初にWebViewClient.onReceivedSslError
呼び出されたときに呼び出されますが、ユーザーが証明書エラーを続行してSslErrorHandler.proceed()
呼び出された場合、2 回目以降は同じ URL がロードされ、WebViewClient.onReceivedSslError
再度呼び出されることはありません。アプリを強制終了するだけで、この動作がリセットされます。
WebViewClient.onReceivedSslError
初めてだけでなく、証明書エラーのある URL が読み込まれたときに体系的に呼び出されるようにしたいと考えています。私は成功せずにこれらのメソッドを呼び出してみました:
が呼び出された後、同じ URL に対してWebView をWebViewClient.onReceivedSslError
複数回呼び出す方法を知っSslErrorHandler.proceed()
ている人はいますか?
java - DevicePolicyManager を使用して Android でアプリケーションを非表示にする
DevicePolicyManager を使用して、アプリケーション内からデバイスの Facebook を非表示にしようとしています。現在、setCameraDisabled メソッドを呼び出して、条件に応じてカメラを無効にすることができました。
Facebook を非表示にしようとしているので、setApplicationHidden メソッドを呼び出し、Facebook の bundleId をパラメーターの 1 つとして指定しました。コードを実行すると、管理者がプロファイルを所有していないことを示す Java セキュリティ例外が発生します。
このセキュリティ例外を停止できるように、ユーザー許可を取得するにはどうすればよいですか? サードパーティのアプリをプログラムで制限するより良い方法はありますか?
ありがとう
android - Android システム リソースへのサードパーティ API のアクセスを制御しますか?
サード パーティの API (パケット依存性注入、生成されたライブラリ、ソース コードなど) を Android プロジェクトにインポートすると、宣伝どおりに動作すると想定されます。ほとんどの場合、コードはオープン ソースではなく、難読化されているか、コンパイルされているだけです。
ネットワーク、連絡先、ビデオとオーディオ、場所などの重要なシステム リソースへのこの API のアクセスを制御する方法はありますか?
最善の方法はproxy
、システム リソースに を提供することです。これには次の利点があります。
- プロキシにモックデータを提供することでテストを実行できます
- アプリケーションは、API が必要とするすべてのアクセス許可を提供する必要がなく、許可されたアクセス許可をエミュレートすることによってアクセス許可が原因で API が破損しないようにすることができます。
- ユーザーに関してローカルで収集され、API ホーム リポジトリに送信され、広告または悪意のある目的で使用される可能性のあるデータをフィルター処理します
ユーザーが定義したアクティビティとサービスはサードパーティ API のサービスを制御できないため、または Android パブリック インターフェイスへの直接呼び出しを防止することさえできないため、そのようなソリューションを実装する方法を見つけることができませんでした。
このソリューションは、独自のアプリの境界外でこのコントロールを使用したくないため、ルート アクセスを必要としません。
この質問の内容は、この広範な質問の特殊性に対処するいくつかの質問にリンクされています (コンテンツ プロバイダーのログ データ、ネットワーク リクエスト- 回答を調査しながらこの問題について考えるようになりました)
注: 簡単な答えはノーですが、十分に創造的である可能性があります (おそらく、ネイティブ レベルのハックを使用すると、この問題が解決する可能性があります - idk)
android - 安全でない TrustManager に関する Google Play のセキュリティ アラート
私のアプリの 1 つで、自己署名証明書で HTTPS を使用し、Android 開発者トレーニング サイト ( https://developer.android.com/training/articles/security-ssl.html#UnknownCa )のサンプル コードに従いました。 .
最近、現在の実装が保護されていないという次のアラートを受け取りました。
セキュリティーアラート
あなたのアプリは、Apache HTTP クライアントで X509TrustManager インターフェースの安全でない実装を使用しているため、セキュリティ上の脆弱性が生じています。脆弱性の修正期限など、詳細については、この Google ヘルプ センターの記事を参照してください。
上記のサンプル コード以外に何を更新する必要があるかについて、誰かが詳細を提供できますか?
カスタムを実装する必要がありますTrustManager
か? もしそうなら、それは何を確認すべきですか?