1

私はウェブページ上で実行されている小さなJavaゲームを作っています。今、私は自分のゲームをMySQL dbと通信させようとしていますが、PHPを介して通信しています。

だからここに何が起こるかです:

  1. ログイン時にセッションを設定する基本的なログインシステム(PHP)があります。
  2. Javaゲームがdbからデータを要求しているとき、それはPOST(URLConnection)をPHPページに送信します。
  3. PHPページは、セッションが設定されていることを確認します。設定されている場合は、dbから必要な情報をエコーし​​ます。
  4. JavaゲームはPHPページ出力で再生されます。

夢のように働き、走る!

私が心配しているのは、実際には、この同じサイクルでより多くのデータを変更してdbに格納する必要があるということだけです。したがって、セッションを実行している場合は、基本的に優れたHTMLフォームを実行し、キャラクターにより良い武器を設定できます。

私はデータベースと通信するための基本的な方法とサーバーが安全に機能する方法の基本的な理論をグーグルで検索しようとしました。簡単な答えはありません。

すぐに私の質問は、

Javaアプリとデータベースの間で通信(読み取りと書き込み)するための安全で正しい方法は何ですか?

そして将来的にはAndroidアプリなどでも同じことをしてください。正しい方向へのキックをくれたら嬉しいです。

ありがとう!

4

2 に答える 2

3

なにもない。クライアントが外部からサーバーに直接任意のSQLクエリを発行できる方法がある場合、必要なデータベース、インクルード、SELECT * FROM usersおよびを使用して誰もが何もできないようにする保護は事実上ありませんDROP TABLE users

明確に許可されたアクションを定義し、他のものをブロックする、外部とサーバーコンポーネント間のAPIが常に必要です。任意のSQLクエリを許可することは、基本的にデータベース内のすべてに無制限にアクセスできるAPIであり、通常は広すぎます。

通常これを行う方法は、クライアントが実行できるいくつかのアクションを定義し、API(REST APIなど)を介してそれらを公開することです。JavaクライアントはこのAPIと通信しますが、サーバーの舞台裏で何が起こっても関係ありません。それは「データベースと通信する」ことではなく、サーバー上で特定のことを行うことです。そして、それらの数は制限されるべきであり、制限されるべきです。

于 2013-02-26T17:50:55.960 に答える
0

この記事を見てください...

アプレットでできることとできないこと

アプレットのセキュリティ問題

于 2013-02-26T17:53:34.930 に答える