基本的にJava iMacのサーバープログラムはすべてJavaで記述されており、Javaクライアント描画プログラムで機能します。
このプログラムは基本的に、ユーザーがJPanelで何かを描画できるようにします。描画は接続されているすべてのクライアントのパネルにコピーされます。
サーバーは複数のオプションポートを介して静的IPアドレスで動作し、データベースとiMacのファイルシステムを使用します。
問題:いつも変なIPアドレスからランダムな接続要求を受け取っており、本当に疑わしいです
私のサンプルサーバーコードを見てください:
質問)1)ナイーブサーバープログラムが原因で、ハッカーがiMacを侵害することはありますか?もしそうなら、それを防ぐためにコードで何を変更すべきですか?
2)コードのどのメカニズムが弱いリンクですか?
3)ハッカーが静的IPを知るだけでiMacにアクセスすることは可能ですか?
ありがとう
悪い知らせを運ぶのは嫌いですが、このようなプログラムを個人のマシンで実行し、外の世界からアクセスできるようにした場合、現実的には、データが盗まれたと想定しなければなりません。またはあなたのマシンが危険にさらされています。
1)ナイーブサーバープログラムが原因で、ハッカーがiMacを危険にさらすことはできますか?もしそうなら、それを防ぐためにコードで何を変更すべきですか?
何かを書いている場合このような場合、答えは「はい」であると想定する必要があります。多くの私自身が、自分のセキュリティをロールバックしないと言うのには理由があります-業界標準のツール、アルゴリズムとフレームワークは、実際には長年にわたって実際の使用でテストおよび強化されており、さらにそれらには時々明らかにされるセキュリティ上の欠陥(時には重大)があります。
このような強化された業界標準のソリューションを使用していても、他の保護層(VMなど)の背後にある場合を除いて、個人用のマシンでこのようなものを実行することはありません。
2)コードのどのメカニズムが弱いリンクですか?
これは間違ったアプローチです。コード全体を見ると、12の大きな穴があるかもしれません。それはそれを安全にすることはありません、そしてあなたはそれが安全であると思い込むべきではありません。また、実行しているプラットフォームのセキュリティ(Java VM OSまで)のすべて)を考慮する必要があるため、次のように記述できます。完全に水密のアプリケーションであり、まだ脆弱です。
いずれにせよ、上記すべてを無視しても。言えなかった。コードを提供していません(Stackoverflowの質問でも、コードは完全な自己完結型の例ではありません-メソッド呼び出し/オブジェクトがありません)。
ただし、投稿した内容に合わせてプレイするためだけに、ログインする前に実際にログインしているかどうかを確認することはありません。
DrawData dat=(DrawData)acceptUserData();//this reads objects
//from the socket inputstream
dat=processData(dat);
sendToAllClients(dat);
...これは本当に私には正しくない何かのにおいがします.
3)ハッカーが静的IPを知るだけでiMacにアクセスすることは可能ですか?
このプログラムが実行されていて、ファイアウォールに穴を開けている場合はどうでしょうか。もちろん、私はあなたが人々があなたのマシンにアクセスでき、アクセスしたと仮定する必要があると思います。その上にパスワード、機密データ、またはその他の類似のものがある場合は、それらすべてをすぐに変更することをお勧めします。
将来、本当に作成したばかりの(おそらく)安全でないプログラムを実行して実験したい場合は、少なくとも安価なVMを起動して実行しますその代わりに-そのようにして、それが危険にさらされたとしても、失うものはそれほどありません。