コードを逆コンパイルする可能性のある人にパスワードを明かさずに、JavaでMysqlデータベースに接続したいですか?私は効率的にデータベースに接続できますが、私の方法ではコードにパスワードが公然と表示されます:(そしてパスワードを非表示にする方法についての応答のみを希望します。よろしくお願いします。JoshAurora
2 に答える
OAuth により、クライアントに資格情報を保存せずにクライアント接続が可能になります (モバイル デバイスで広く使用されているか、tweitte アプリケーションを識別するために使用されます)。また、不正なクライアントからアクセス許可を削除することもできます. しかし、mysql がこれを直接サポートしているとは思えません。そのため、データベースをある種のサービス層でラップする必要があります。OAuth の使用可能な実装の 1 つ:
http://code.google.com/p/oauth-signpost/
(IIRC、Qipe で使用)
アクセスされるデータベースがマシン上にあると仮定すると、次の 2 つのことが頭に浮かびます。
小さな安全な REST サービス (ここに示すように) をセットアップします。このサービスは、特定の資格情報を使用した特定の要求に応じて、パスワードをデータベースに渡します。ただし、ファイアウォールの例外を追加する必要がある可能性があるため、アプリケーションが企業のファイアウォールの背後にある場合、これは問題になる可能性があります。これは、すべての管理者が熱心に取り組んでいるわけではありません。
暗号化と難読化を組み合わせて使用して、データベースへのパスワードを暗号化し、すべてのコードを難読化することができます。
ただし、これらの方法のいずれかがやがて壊れる可能性があることに注意してください。これは基本的にすべてのセキュリティ関連ソフトウェアに関するルールです。
私なら、最初のアプローチを使用してこの問題に対処し、サービスへのアクセスに使用される資格情報が頻繁に変更されるようにします。
ただし、クライアント ソリューションの一部として使用されるデータベースには、クライアントが改ざんしないようにするための非常に機密性の高いデータが含まれているため、クライアントはほとんどの場合、それを台無しにすることはありません。動作します。
一方、データベースがいずれかのマシンにデプロイされていない場合、実際には何もできません。イントラネット経由でのみアクセスできるリモート マシンにサーバーを格納することをお勧めできますが、それ以外にできることはあまりないと思います。