2013-04-29 29 views
6

Tình huống: Tôi đang cố gỡ lỗi ứng dụng Android bằng cách yêu cầu proxy thông qua Fiddler.Tại sao một số yêu cầu HTTPS không giải mã được trên Fiddler, trong khi một số yêu cầu hoạt động?

Tôi nhận chứng chỉ FiddlerRoot được cài đặt trên thiết bị Android và giải mã SSL hoạt động cho yêu cầu nhất, nhưng đối với các yêu cầu khác, tôi chỉ có thể xem Kết nối HTTPS và không có gì khác trong nhật ký Fiddler. Tôi nghĩ rằng có thể là yêu cầu hình ảnh qua SSL không giải mã được.

Tôi đã kiểm tra kỹ rằng "Ẩn hình ảnh" bị tắt, v.v. Hình ảnh được truy xuất được lưu trữ trên tên miền khác với API chính mà ứng dụng nói đến.

Điều gì có thể gây ra hành vi này? Và làm cách nào để tôi nhận được yêu cầu hiển thị hình ảnh trong Fiddler?

Tôi đang sử dụng Fiddler4 mới nhất.

+0

Tên miền mục tiêu và yêu cầu của ứng dụng là gì? Một số ứng dụng sử dụng Ghim chứng chỉ, được thảo luận trong sách Fiddler, để ngăn chặn sự can thiệp của người trung gian. Những người khác có triển khai SSL lỗi; xem http://blogs.msdn.com/b/ieinternals/archive/2009/12/08/aes-is-not-a-valid-cipher-for-sslv3.aspx – EricLaw

Trả lời

1

Có rất nhiều hướng dẫn về cách bạn có thể chặn lưu lượng truy cập HTTP (s) từ Android bằng Fiddler. Hãy thử cái này: http://docs.telerik.com/fiddler/configure-fiddler/tasks/configureforandroid

Tuy nhiên, nó sẽ thất bại khi bạn cố chặn và giải mã lưu lượng truy cập Android SSL từ một ứng dụng chứ không phải từ trình duyệt.

Có thể ứng dụng sử dụng khóa chứng chỉ - và có thể bạn không thể giải mã kết nối này. Mất nguyên nhân! Nhưng nhiều khả năng, lý do là lỗi trong quá trình triển khai đường dẫn HttpsUrlConnection.

Để giải quyết vấn đề này, xin vui lòng tiến hành các bước sau:

  1. Trong Fiddler bấm "Quy tắc Rules-> Customize";
  2. Tìm chức năng OnBeforeResponse trong kịch bản
  3. Thêm mã sau đây để các cơ quan chức năng:

    if (oSession.oRequest["User-Agent"].indexOf("Dalvik") > -1 && 
        oSession.HTTPMethodIs("CONNECT")) { 
        oSession.oResponse.headers["Connection"] = "Keep-Alive"; 
    } 
    
  4. Lưu file và khởi động lại Fiddler.

Các vấn đề liên quan