2017-12-24 15 views
0

現在私は私のJava - SFTPクライアント/サーバー - セットアップで構想上の問題を扱っています。Java SFTPクライアント - 概念

私は基本的に、リモートサーバーにファイルを送信してそこに保存するクライアントを持っています。しかし、あなたはあなたのコンピュータ上のjarファイルを介してアップロードを起動するので、誰もがjarファイルを解読して、クリアなjavaファイルを読んで、自分のsftpの資格を取得することができます。

この問題を解決する技術はありますか、アドバイスできる回避策はありますか?

ご挨拶とありがとうございます!

+0

私はあなたの問題をかなり受け取りませんでした。あなたは、jarファイルを使用するユーザーが解読し、自分が行っていることを見ることができるのではないかと心配していますか? または、ソースコードでユーザー/パスワードをハードコードしましたか? – oBit91

答えて

-1

問題が正しく理解されている場合は、Javaソースに資格情報が含まれていることに根ざしています。

まず、SSH2の優れた実装にはjSch libraryを使用することを強くお勧めします。

資格情報については、回答hereがあります。 要約すると、暗号化された証明書を保存します。

+0

リンクされた解決策はOPの問題を解決しません。サーバーの資格情報とAPIキーを格納することは、決して行うべきではありません。 –

+0

私はそれをすることをお勧めしませんが、OPは具体的に彼の資格情報をthrのソースに格納するように頼んだ。暗号化以外は私には他の選択肢はありません。スティーブンの答えはより徹底していますが、問題を扱っていないだけでなく、安全ではないデザインだと言っています。いずれにしても、OPにはインテリジェントなソリューションを推測するのに十分な情報があると私は信じています。 – oBit91

+0

そして、私がC++用のアプリケーションを書くときは?私は何とかしてユーザーからの資格情報を隠すことができますか? Javaを使用することはできません。 –

2
  1. 資格情報を共通/共有JARファイルに入れることはお勧めできません。安全に実行することはできません。ユーザーにそれらを置き換える必要がある場合は、新しいJARをダウンロードしてインストールする必要があります。

  2. ユーザーから資格情報を非公開にすることはできません。ユーザーのコンピュータで資格情報を使用する必要がある場合は、ユーザーが何らかの方法で資格情報を抽出することが可能になります。何を試しても問題ありません。 (彼らが彼らのマシンを制御していると仮定します...)

  3. 暗号化された資格情報を保存しても、それらはユーザーから保護されません。アプリケーションには復号鍵が必要です。ユーザーはそれを見つけて抽出し、資格情報を回復することができます。

  4. ユーザーごとに個別のアップロード資格情報を発行する方がよいでしょう。そうすれば、あるユーザーが自分の資格情報を失う、または乱用すると、他のユーザーに影響を与えることなく無効にすることができます。

+0

**あなたが何を意味するのかを説明してもらえますか?**各ユーザーの個別のアップロード資格情報を発行してください**、まだそのユーザーにjarファイルを使用させたいのですか? –

+0

各ユーザーには、JARファイル*とは別に、独自のユーザー名+パスワードまたはキー*を提供します。これを設定ファイルとして提供することもできます... JARファイルとは別に、動的Webページなどからコピーする必要があります。 –

+0

@ oBit91に関する最新のコメントを見る –