2011-10-20 13 views
0

私はJavaでマルチプレイヤーゲームに取り組んでいます。私はハッカーがゲームデータを変更するのを心配しています。今はアプレットでゲームを実行し、そこからMySQLデータベースに接続することに興味があります。私はC#とXNAで作業してきたので、Javaにはあまり慣れていないので、アプレットがどれくらい安全か疑問に思っていました。ブラウザで動作しているアプレットのゲーム変数を何らかの形で変更できますか?彼らは何とか私のデータベースにアクセスできましたか?Javaアプレットの変数を変更する

+0

おそらくいいえ。サーバーのデータベースやアプレットの変数にアクセスするのが難しい – Samrat

+0

私は、アプレットとサーバーおよび/またはDBとの間のトラフィックについてより心配しています。 –

答えて

2

もちろん、技術的には可能です。アプレットをダウンロードするとすぐに、保存、解凍、逆コンパイル、変更が可能です。

実際、私は誰も気にするとは思わない。あなたが気にしているのであれば、適切な方法は、クライアントからのすべての要求がそれに作用する前に検証されるような方法でサーバーを書くことです。 MySQLへの接続のよう

、二つの問題があります。

  1. あなたがアプレットにMySQLの資格情報を渡すしようとしているが。ユーザーがデータベースに直接アクセスできないように、それをどのように安全にしていますか?
  2. ファイアウォールの多くは、MySQLポートを通過させません。それは解決可能ですが、あなたは解決策を準備していますか?ほとんどの場合、この問題は解決するより簡単です。
+0

ありがとうございます。私は自分の状況でできることをどうやってやったのか、もっと詳しく読んでいます。あなたが言及したように、私が試したいと思っているものについては、誰かが試して気にする人がいれば、私は多くを疑う。にもかかわらず、より良い理解を得るためにもう少し詳しく読む価値があります。 – Ted

+0

+1良い答え。 * "MySQLクレデンシャルをアプレットに渡すつもりです。" * DBへのアクセスは、サーバー側のコード(例えば、サーブレット、ASP、PHPなど)によって行われる必要があります。それ以外の場合は、DBがゴミ箱になることを期待してください。 –

+0

私はPHPやMySQLでクラスを取っているので、私の無知を許しています。だから私の知識は、セキュリティのようなトピックにはまだ限られています。私はWAMPをセットアップして、Javaから私は使用しています: "conn = DriverManager.getConnection(url + dbName、userName、password);"と "rs = stmt.executeQuery(" SELECT ... ");"だから、私が人々にしてもらうことは、ウェブサイトを通じてアカウントにサインアップすることで、アカウントにデータベースへのアクセスが制限されることになります。もちろん、これはアカウントに関連する値を変更する機能を意味します。私が理解できないところは、この信任状の考え方です。誰かがさらに説明できますか? – Ted

関連する問題