まず第一に、これが数回尋ねられたことを知っており、この件について多くの調査を行いましたが、決定的な答えを見つけることができないようです. ここで重要な何かが欠けているか、これが不可能であり、あなたの時間を無駄にしています. ここに行きます:
ID、ある時点で変更する必要があるブール値 (0 または 1)、および何らかの情報を含む定数文字列値で構成される、たとえば 1000 行のみを格納するデータベースを想像してみてください。ユーザーがクライアント Java アプリで必要なアクションをコミットした場合にのみ、情報にアクセスして値を変更できます。そこだけが肝心。
ワールド ワイド ウェブを検索しているときに、自分のニーズに合った 2 つのオプションを見つけました。
データベース自体に各ユーザーの権限を設定し、ユーザーが独自のユーザー名とパスワードを使用してアプリからログインできるようにします。その後、クライアント アプリはユーザーの希望に応じてデータベースと通信し、必要に応じてデータベースの読み取りと書き込みのタスクを実行できます。
3 層アプローチを使用して、Java アプリがクエリを実行し、Java アプリが解析できる種類のエンコードされた json 文字列を返す PHP インターフェースと通信するようにします。クライアントのユーザー名とパスワードをPHPインターフェイスに送信すると、クライアントが適格かどうかがチェックされ、それに応じてクエリが実行されます。大したことはありません。
私が理解できないように見えるのは、Java クライアントのみを変更してデータを取得する方法です。たとえば、アプローチ 1 で文字列の内容を知りたい場合、単純にユーザー名とパスワードを使用して、データベースに直接クエリを実行できます。クエリは、逆コンパイル後に Java アプリから簡単に取得できます。#2 については、アプリが逆コンパイルされている場合、PHP インターフェースもリバース エンジニアリングされる可能性があり、ユーザーはデータベースの実際のパスワードとユーザー名を知らなくても、PHP スクリプトを悪用してデータベースにクエリを実行できます。
ユーザーはまったく信頼されておらず、Java アプリで特定の条件が満たされるまで、データベースの内容は秘密のままにしておく必要があることを指摘する必要があります。それを達成する方法はありますか?そして、私が気付いていない方法があるとすれば、これらの 2 つのオプションに固執していないことは間違いありません。事前にご協力いただきありがとうございます。