SQLサーバーに接続してデータを取得するphpスクリプトがいくつかあります。これらの php スクリプトを Android アプリケーションから呼び出します。問題は、誰かが自分のコンピューターでそのサイトにアクセスしたときに、スクリプトの出力を公開したくないということです (アプリケーションをインストールしたユーザーやその他のデータに関する情報を保持しているため)。これらのスクリプトを使用する唯一の理由は、アプリケーションの内部ロジックのためです。Androidフォンからスクリプトにアクセスできるようにすると同時に、コンピューターからブラウザーを使用してスクリプトに接続したときに出力を表示しない簡単な方法があるのではないかと思っていました。そうでない場合、他にどのようなオプションがありますか?
3 に答える
提案されているように、単一の秘密コードを持つことは非常に安全ではありません. プロキシ経由で送信されたメッセージを渡し、それをキャッチするだけでコードを取得できます。あなたが直面していることは、基本的に、公開されている API の作成者が直面している問題と同じです。
最善の策は、すべてのリクエストとレスポンスに署名するために使用されるすべてのインストールに固有の API キーを用意することです。これには、ユーザーが手動でアプリケーションに追加する必要はありません。アプリケーションが初めてサーバーと通信するときに、サーバーにキーが提供され、そのキーがそのデバイス/インストールにマップされる可能性があります。
Google forAuthentication for REST API in PHP
または同様のものを使用すると、おそらく正しい方向に向けて何かを見つけることができます。
Androidアプリケーションのみが知っているID(つまりクライアントID)をヘッダーで送信し、サーバーでこのIDが存在する場合は実際の応答を送信し、IDが存在しない場合はダミーの応答を送信できます。また、HTTPS を使用して、送信するすべてのデータが暗号化されるようにします。
Android のバックグラウンドで PHP スクリプトを呼び出す場合は、シークレット コードをクエリ データとして渡すことができます。バックグラウンドで行われているため、誰も見ることはありません。あなたのphpはそのコードが送信されたかどうかをチェックします。そうでない場合、何も返されません。この方法で実装することはできますが、これはあまり安全なシステムではありません。