2017-11-25 8 views
0

URLを指定してウェブサイトのタイトルを取得する必要があるアプリを開発中です。次のコードはそれを行いますAndroidのSSL接続中の人の男

特定のWebページ(たとえばCreditCheckTotal.com)ではIOExceptionがスローされています。ここに例外があります

javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. 

これはSSL証明書が信頼されていないことが原因であると私は理解しています。私はこの問題に対処する方法を模索していましたが、接続を確立する前に次のコードを実行するように提案された記事がありました。

private static void trustEveryone() { 
     try { 
      HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier(){ 
       public boolean verify(String hostname, SSLSession session) { 
        return true; 
       }}); 
      SSLContext context = SSLContext.getInstance("TLS"); 
      context.init(null, new X509TrustManager[]{new X509TrustManager(){ 
       public void checkClientTrusted(X509Certificate[] chain, 
               String authType) throws CertificateException {} 
       public void checkServerTrusted(X509Certificate[] chain, 
               String authType) throws CertificateException {} 
       public X509Certificate[] getAcceptedIssuers() { 
        return new X509Certificate[0]; 
       }}}, new SecureRandom()); 
      HttpsURLConnection.setDefaultSSLSocketFactory(
        context.getSocketFactory()); 
     } catch (Exception e) { // should never happen 
      e.printStackTrace(); 
     } 
    } 

は今、ポストから、それはMIMAの可能性を作成するため、このソリューションは、セキュリティ上の脅威をもたらす可能性があることが明らかになりました。今、私の質問は、私の上記のコードの唯一のポイントは、Webページのタイトルをつかむことなので、私はすべての証明書を信頼することが問題ですか?

+0

正しいサーバーに正しいWebページのタイトルがあるかどうかわからないため、問題です。このコードは使用しないでください。 – EJP

+0

EJP何を意味するのかよくわからないのですか?タイトルを取得するだけでこのコードが有害である状況を提供できますか? – Saik

答えて

1

証明書の検証は、正しいサーバーと通信していることを確認するために行われます。重要なデータを転送しないで、Webページのタイトルのみを取得する場合は、異なるコンテンツを取得するリスクを受け入れる限り、証明書の検証を無効にするリスクは許容されるとみなされます。別のタイトル)。

+0

私はセキュリティの問題をこの時点であまり扱っていないので、私が今考えていることはまったく間違っているかもしれませんが、ここに行きます。私はMIMAが発生した場合に別のタイトルを受け取るかもしれないという事実で大丈夫ですが、私のコードがHTMLファイル全体をダウンロードしているので、ダウンロードしたHTMLファイルにいくつかの悪意のあるコードが含まれている可能性はありますか? – Saik

+0

@Saik:あなたが完全に管理していないサイトにアクセスすると、予期せぬ予期しないコンテンツに対処する必要があります。これは、MITM攻撃で新たに追加された問題ではありません。 –

関連する問題