2 điểm bởi GN⁺ 2025-12-21 | 1 bình luận | Chia sẻ qua WhatsApp
  • Công cụ proxy gỡ lỗi web cho phép phân tích trực quan lưu lượng HTTP và HTTPS, có thể xem toàn bộ thông tin request, response và header
  • Tích hợp các tính năng Reverse Proxy, SSL Proxy, HTTP Monitor giúp nhà phát triển theo dõi chi tiết giao tiếp mạng
  • Phiên bản mới nhất Charles 5.0.3 đã sửa vấn đề hiệu năng trên macOS và bao gồm một số cải tiến nhỏ
  • Các cải tiến về UI, hỗ trợ chế độ tối, nâng cao hiệu năng đã liên tục được bổ sung từ giai đoạn beta 5.x
  • Là một công cụ gỡ lỗi web tiêu biểu được cập nhật đều đặn từ giữa những năm 2000, được sử dụng rộng rãi trong môi trường phát triển di động, Flash và iOS

Tổng quan

  • Charles là một proxy gỡ lỗi web cho phép nhà phát triển xem toàn bộ lưu lượng HTTP và SSL/HTTPS giữa máy tính của mình và Internet
    • Hiển thị đầy đủ request, response, HTTP header (bao gồm thông tin cookie và cache)
    • Tích hợp các chức năng HTTP Proxy, HTTPS Proxy, Reverse Proxy, HTTP Monitor

Xu hướng phát triển gần đây

  • 20 tháng 9, 2025: Phát hành Charles 5.0.3, sửa vấn đề hiệu năng trên macOS và một số cải tiến nhỏ
  • 9 tháng 8, 2025: Phát hành 5.0.2, sửa lỗi và một số cải tiến nhỏ
  • 12 tháng 3, 2025: Charles 5 chính thức ra mắt
  • 24 tháng 1, 2024: Công bố beta 13 của 5, cải tiến UI trên Windows và hỗ trợ chế độ tối
  • Tháng 7~4, 2023: Ở các phiên bản beta 9~11 có cải tiến UI và hiệu năng, thêm tính năng mới, sửa lỗi
  • Tháng 9, 2022: Phát hành 4.6.3, cập nhật Java 11 và sửa lỗi
  • Tháng 12, 2021: Thông báo liên quan đến lỗ hổng log4j2 — Charles không sử dụng log4j nên không bị ảnh hưởng
  • 2020~2019: Trong các phiên bản 4.6~4.5 có hỗ trợ Dark Mode, cải thiện chứng chỉ SSL, vá lỗ hổng bảo mật
  • Tháng 5, 2018: Ra mắt Charles cho iOS
  • 2016: Phát hành Charles 4 với hỗ trợ HTTP/2 và IPv6
  • 2006~2009: Bổ sung hỗ trợ AMF, SOAP, JSON và cải tiến lớn về UI
  • 2005: Giới thiệu thiết lập proxy tự động cho Firefox và tính năng phân tích Flash Remoting
  • 2003~2004: Hoàn thiện các tính năng cốt lõi như SSL, Reverse Proxy, SOCKS Proxy

Tính năng chính

  • Giám sát lưu lượng HTTP/HTTPS: kiểm tra theo thời gian thực request, response, header, cookie, thông tin cache
  • SSL Proxy và Reverse Proxy: hỗ trợ phân tích giao tiếp được mã hóa và theo dõi phản hồi từ máy chủ
  • Công cụ phân tích dựa trên UI: cung cấp so sánh request/response, lọc lưu lượng, lưu phiên
  • Hỗ trợ nhiều nền tảng: hoạt động trên macOS, Windows, iOS...
  • Cải thiện hiệu năng và độ ổn định: liên tục sửa lỗi và cập nhật chữ ký mã

Đánh giá bên ngoài và các trường hợp sử dụng

  • Andrew Bardallis: giới thiệu cách dùng Charles cùng thiết bị di động để quan sát và chỉnh sửa lưu lượng
  • Tobias Sjösten: mô tả các trường hợp giám sát và gỡ lỗi bằng Charles
  • Dan Grigsby: sử dụng Charles để phân tích dữ liệu XML của iPhone App Store
  • Gary Rogers: ứng dụng Charles để gỡ lỗi kết nối HTTP trên iPhone
  • MadeByPi, Frankie Loscavio, Darren Richardson, uberGeek cùng nhiều người khác nhấn mạnh hiệu quả gỡ lỗi trong môi trường phát triển Flash và Flex

Đánh giá tổng hợp

  • Qua hơn 20 năm được cập nhật liên tục, Charles đã trở thành công cụ phân tích mạng thiết yếu cho nhà phát triển web và di động
  • Với hỗ trợ nhiều giao thức và UI trực quan, công cụ này nâng cao hiệu quả gỡ lỗi, đồng thời các cải tiến về bảo mật, hiệu năng và khả năng tương thích vẫn được duy trì đều đặn

1 bình luận

 
GN⁺ 2025-12-21
Ý kiến trên Hacker News
  • Muốn nhắc đến Fiddler, công cụ mà trước đây tôi từng cực kỳ yêu thích
    Khi lần đầu dùng nó cách đây gần 20 năm, tôi đã thấy nó như một công cụ đến từ tương lai. Theo tôi nhớ thì thời đó nó còn mạnh hơn Charles
    Ban đầu nó chỉ dành cho Windows, nhưng khi ấy họ cũng đang chuẩn bị các bản dựng cho nền tảng khác. Sau đó công ty bị mua lại nên lộ trình thay đổi, còn tôi thì cũng rời Windows
    Trang chính thức của Fiddler

    • Hoàn toàn đồng ý. Tôi vẫn thỉnh thoảng kể về ký ức với công cụ tuyệt vời đó
      Không biết bạn có từng tìm được công cụ thay thế cho macOS nào không. Tôi đến giờ vẫn chưa tìm được thứ gì thật sự ổn
  • Đó đúng là một công cụ kiểu viên ngọc ẩn
    Phương án miễn phí gần nhất là mitmproxy, nhưng thật lòng là vẫn không thể so sánh được
    Tất nhiên còn có Wireshark, nhưng nó quá đa dụng và đường cong học tập khá dốc
    Ngày trước có thể dùng mà không cần thuê bao, và nó hoàn toàn xứng đáng với số tiền bỏ ra

    • Mùa hè tôi đã thử làm một bản clone của Charles Proxy. Cấu trúc gồm iOS VPN → mitm → chứng chỉ gốc tùy chỉnh → ghi log
      Tôi dùng gomitmproxy để xử lý sniffing lưu lượng và mã hóa lại
      Mã nguồn trước đây tôi đăng ở đây, nhưng máy chủ git bị hỏng nên không khôi phục được
      Dạo này tôi tự hỏi liệu AI có thể biến đống mã sơ sài của tôi thành một bản clone Charles hoàn chỉnh hay không
      Nhưng việc Apple yêu cầu tài khoản nhà phát triển trả phí để truy cập Packet Tunnel API thật sự rất khó chịu. Tôi còn mất hơn một ngày loay hoay vì không thể test được cả trên simulator
    • Khoảng năm 2016~17 tôi đã dùng mitmproxy và mitmdump rất hiệu quả. Nó mạnh và dễ script hơn nhiều, nên với mục đích của tôi còn tốt hơn Charles rất nhiều
    • Hồi trước khi reverse engineer tiện ích mở rộng trình duyệt hay app di động, tôi thấy chỉ cần mitmproxy là đủ
    • Tôi thích mitmproxy vì có thể chạy trực tiếp trên server, rồi cài chứng chỉ tin cậy lên điện thoại và nối lưu lượng qua WireGuard, như vậy có thể xem toàn bộ traffic trên web
      Dạo này nhiều app bị chặn bởi certificate pinning, nhưng gặp trường hợp đó thì tôi xử lý bằng Frida
    • Burp cũng có bản miễn phí (Community Edition)
      Link tải Burp
  • Burp Suite cũng có chức năng tương tự, nhưng định hướng khác
    Charles tập trung vào quan sát và debug lưu lượng HTTP(S), nên rất phù hợp để nhanh chóng xác định vấn đề
    Trong khi đó Burp thiên về bảo mật, chuyên cho intercept, gửi lại, tự động hóa và phân tích bề mặt tấn công
    Vì vậy khi chỉ cần khả năng quan sát đơn giản thì tôi dùng Charles, còn khi mục tiêu là phân tích bảo mật thì dùng Burp

    • Caido cũng là một lựa chọn thay thế đáng xem. Dù mới xuất hiện nhưng đang phát triển rất nhanh, và gần đây nhiều tính năng của Burp thực tế là lấy cảm hứng từ Caido
    • Với use case của tôi thì chỉ cần Burp là đủ. Bản community cũng hoạt động khá tốt
    • Một lựa chọn thay thế khác là ZAP (Zed Attack Proxy). Hoàn toàn miễn phí và mã nguồn mở
  • Tôi đã dùng Charles rất lâu vì không cần tính năng phức tạp, nhưng vài năm trước đã chuyển sang Proxyman và thấy dễ dùng hơn hẳn

    • Proxyman đắt hơn một chút nhưng giá trị phải gấp 100 lần. UI native, phím tắt, trình hỗ trợ cài chứng chỉ, và cả trình chỉnh sửa script đều mạnh hơn Charles rất nhiều
    • Tôi cũng đã dùng Charles hơn 10 năm, nhưng nếu là người dùng macOS thì Proxyman tự nhiên và tiện hơn hẳn
    • Ở công ty cũ, Charles không nằm trong danh sách phần mềm được phê duyệt nên tôi dùng Requestly. Sau đó có quay lại thử Charles, nhưng cuối cùng vẫn quay về Requestly vì nó đơn giản hơn
    • Về mặt chức năng thì Charles gần như hoàn hảo, nhưng nếu cải thiện UI thêm một chút thì sẽ thành công cụ hoàn chỉnh
      Cấu trúc menu khá rối và tính năng liên quan đến DNS còn thiếu. Tôi cũng đã thử Proxyman, nhưng cảm giác không thấy tốt hơn rõ rệt nên không mua thêm giấy phép
    • Tôi dùng song song cả hai công cụ. Proxyman không có tính năng nhóm phiên, nên tôi vẫn chưa thể bỏ hẳn Charles
      Cảm ơn cả hai nhà phát triển
  • Tôi thấy lạ là tại sao cái này lại đang ở trang chính Hacker News. Tôi nghĩ đây đã là công cụ quá nổi tiếng rồi

    • Có người nói họ chưa từng nghe đến, nên họ vui vì được giới thiệu
    • Tôi cũng thấy khó hiểu. Gần đây không có cập nhật gì mà không biết vì sao lại được chú ý trở lại
  • Với nhu cầu đơn giản, tôi đang dùng bản miễn phí của HTTP Toolkit
    Nó mở một cửa sổ Firefox riêng để chặn lưu lượng, nên rất tiện vì không phải đụng vào cấu hình trình duyệt làm việc của tôi

  • Khi bắt đầu phát triển iOS vào năm 2011, Charles là công cụ không thể thiếu để debug HTTP API
    Thật vui khi thấy nó vẫn được duy trì đều đặn đến tận bây giờ

  • Năm ngoái tôi mới lần đầu dùng Charles Proxy và thấy nó thật sự rất xuất sắc
    Nó còn có cả phiên bản app di động để dùng khi cần proxy SSL cho ứng dụng di động

  • Tôi vẫn nghĩ đây là một trong những phần mềm tốt nhất
    Dạo này tôi đang dùng Proxyman

    • Tôi cũng đã chuyển từ Charles sang Proxyman. Nó còn hỗ trợ debug từ xa, nên chỉ cần cắm iPhone bằng cáp là có thể kiểm tra ngay
  • Tôi là người dùng Burp, nhưng dạo này Caido đang nổi lên
    Nó nhẹ và có thể chạy ở chế độ headless. Dù vẫn tập trung vào bảo mật, nó được thiết kế để proxy toàn bộ lưu lượng trên VPS hoặc container

    • Tôi là đồng sáng lập Caido. Cảm ơn vì đã nhắc đến, và giờ chúng tôi cũng đang mở rộng sang mảng DevSecOps