2013-07-30 35 views
7

Apache httpclient dường như ghi lại mật khẩu trong văn bản rõ ràng khi tính năng ghi nhật ký gỡ lỗi được bật.apache httpclient ghi nhật ký mật khẩu trong văn bản rõ ràng khi gỡ lỗi ghi nhật ký được bật

Có cách nào để tắt tính năng này không? Vì vậy, tôi có thể thấy phần còn lại của việc ghi nhật ký gỡ lỗi nhưng không thấy thông tin xác thực?

+4

HttpClient nhật ký tất cả mọi thứ đi qua mạng và qua nó. Nó không biết mật khẩu là gì và không phải là gì. –

Trả lời

4

Tạo hàm băm SHA1 của mật khẩu trong bộ nhớ trước khi bạn gửi mật khẩu đó trên mạng.

MessageDigest md = MessageDigest.getInstance("SHA-1"); 
byte[] sha1hash = new byte[40]; 
md.update(text.getBytes("UTF-8"), 0, text.length()); // TODO verify the lengths are the same 
sha1hash = md.digest(); 

http://www.mkyong.com/java/java-sha-hashing-example/

Nếu bạn hoàn toàn cần mật khẩu dạng cleartext, bạn có nhiều lựa chọn:

  1. Bạn có thể vô hiệu hóa khai thác gỗ cho tiêu đề hoặc cài đặt nó lên một tầm cao hơn debug: Disable HttpClient logging

  2. Bạn có thể tự động tắt ghi nhật ký ngay trước khi gửi mật khẩu và sau đó quay lại n lần nữa: Dynamically configuring Apache Http client

  3. Bạn có thể triển khai trình xử lý/trình định dạng Logger của riêng bạn hoặc một lớp con của trình xử lý cơ bản và tìm kiếm đầu ra cho mật khẩu của bạn và thay thế bằng XXXXXXXXX. Sau đó thiết lập các handler để lớp học của bạn: https://hc.apache.org/httpcomponents-client-ga/logging.html

+1

Điều gì xảy ra nếu trang được yêu cầu yêu cầu mật khẩu thuần túy? –

1

Trong log4j.properties thiết

log4j.logger.httpclient.wire.level=WARN

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