2009-08-10 20 views
7

Chúng tôi đang viết một chương trình java giữ mật khẩu trong bộ nhớ. Thật không may, người dùng có thể dễ dàng sử dụng jconsole hoặc jmap để tạo một tệp kết xuất đống và mở nó để tìm mật khẩu. Tôi nghĩ rằng jconsole kết nối jvm bằng cách sử dụng ổ cắm địa phương. Tôi muốn biết, có cách nào để vô hiệu hóa jmx ngay cả đối với người dùng cục bộ không? Có cách nào để hoàn toàn vô hiệu hóa đống đống? Khi người dùng có quyền truy cập vào phân đoạn bộ nhớ, điều này có thể truy cập vào mật khẩu. Tuy nhiên, tôi muốn vô hiệu hóa các tiêu chuẩn cách thực hiện điều đó để làm cho hành động trở nên tốn kém nhất có thể.Vô hiệu hóa các kết nối cục bộ JMX trên JVM

Trả lời

5

Cuối cùng, tôi đã tìm thấy giải pháp để vô hiệu hóa kết nối jconsole. Nó cũng ngăn jmap tạo một tệp kết xuất. Tôi tìm thấy giải pháp here. Tôi cũng trích dẫn câu trả lời ở đây:

Bạn có thể ngăn các công cụ như jconsole và những người khác từ kết nối bởi chạy với -XX: tùy chọn + DisableAttachMechanism. Lưu ý rằng tùy chọn này không phải là tài liệu/được hỗ trợ nhưng nên làm những gì bạn muốn. Điều đó nói rằng, ngay cả với này không có gì là để ngăn chặn bạn kết nối gdb hoặc gỡ lỗi/proc dựa chương trình khác

Tuy nhiên, đó là rõ ràng phân khúc bộ nhớ có thể được truy cập tại địa phương. Tuy nhiên, không ai biết một công cụ để làm cho bãi chứa bộ nhớ tiêu chuẩn với truy cập trực tiếp vào bộ nhớ?

+1

Không nhất thiết là định dạng kết xuất bộ nhớ tiêu chuẩn, nhưng bạn có thể sử dụng trình soạn thảo hex HxD (http://mh-nexus.de/en/hxd/) để truy cập bộ nhớ của bất kỳ quá trình cục bộ nào (được cấp đủ đặc quyền) . –

+0

Tốt. Làm việc cho tôi! – laher

2

Thiết lập kết nối tối đa đếm đến zero tắt JMX

-Dsun.rmi.transport.tcp.maxConnectionThreads=0 

Nếu bạn vẫn cần số liệu thống kê, đơn giản đọc hsperfdata_ tương ứng file *

Edit: tôi công bố hsperf munin plugin tôi trên github.

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