2009-08-10 8 views
7

パスワードをメモリに保持するJavaプログラムを作成しています。残念ながら、ユーザーは簡単にjconsoleまたはjmapを使用してヒープダ​​ンプファイルを作成し、それを開いてパスワードを見つけることができます。私はjconsoleがローカルソケットを使ってjvmに接続すると思います。私は知りたいのですが、ローカルユーザでもjmxを無効にする方法はありますか?ヒープダンプを完全に無効にする方法はありますか?ユーザがメモリセグメントにアクセスできるので、これはとにかくパスワードにアクセスすることが可能です。しかし、できるだけ高価な行動をとるための標準的な方法を無効にしたいと思っています。JVMでのローカルJMX接続の無効化

答えて

5

最後に、jconsole接続を無効にするソリューションが見つかりました。また、jmapがダンプファイルを作成するのを防ぎます。私は解決策を見つけたhere。私もここで答えを引用:

あなたは により接続からそのような のjconsoleなどのツールなどを防ぐことができます -XXで実行されている:+ DisableAttachMechanismオプション。このオプションは が文書化されているかサポートされていませんが、あなたが望むものを する必要があります。それは、これはあなたがGDBや他のデバッグ/ procの ベースのプログラムが

を接続 停止することは何もありませんでも と、言った、それはメモリ・セグメントがローカルにアクセスできることは明らかです。しかし、メモリに直接アクセスして標準メモリダンプを作成するツールを知っている人はいますか?

+1

標準的なメモリダンプ形式である必要はありませんが、HxD 16進エディタ(http://mh-nexus.de/en/hxd/)を使用して、ローカルプロセスのメモリにアクセスできます(十分な特権が与えられています) 。 –

+0

ニース。私のために働く! – laher

2

最大接続数をゼロに設定すると、あなたはまだ統計情報が必要な場合はJMX

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

をシャットダウンし、シンプル* hsperfdata_対応するファイル

編集読み:私はgithubの上で私のhsperf munin pluginを公開し を。

関連する問題