2017-10-03 3 views
-2

POSTを使用してPHPサーバーとAndroidクライアント間でデータを転送するには、セキュリティをどのように改善するのですか?たとえば、サーバーAPIへの信頼できるアクセスと成功したアクセスがAndroidクライアントのみになるようにするにはどうすればよいですか?どのようにAndroidクライアントとPHPサーバーのセキュリティを向上させるには?

のため、ログインメカニズムがあるので、すべての投稿にアカウント認証コードを追加する必要があります(ユーザーパスワードなどで構成され、MD5で暗号化されている可能性があります)。ソースが無効です(確認コードがないか間違っています)。サービス拒否です。これは実現可能ですか?

+0

HTTPS接続を使用し、エンコード済みの投稿データを送信し、ヘッダに認証トークンを使用してください。 –

+0

OAuthを実装することができます –

+2

実際のアプリケーションからのリクエストが100%確実になることはありません。ユーザーがアクセスできるクライアントからの要求があった場合、ユーザーは理論的には常にアプリケーションが要求をどのように行っているかを確認して偽装することができます。 –

答えて

1

最初にRESTfulウェブサービスを設定することをおすすめします。これにより、特定のエンドポイントに対してのみPOSTを渡すなどの方法で、Androidクライアントからのリクエストをフィルタリングできます。

Androidクライアントだけがあなたのサーバーにアクセスしていることが分かっていた場合は、リクエストごとに「クライアント」または「認証」トークン(単にJSONプロパティ)を送信しなければならないことを強制することもできます。トークンをAndroidクライアントの実装に送信し、トークンを含まないサーバーへのアクセスを拒否します。

PHP内の$_POSTなどのスーパーグローバルに直接アクセスしないでください。代わりにfilter_input()を使用することも重要です。

これは単なる提案に過ぎず、もっと多くのことができます。

+0

RESTfulなWebサービスを設定することは、他のどのタイプのWebサービスよりも安全ではありません。クライアントトークンと認証トークンに関して、誰かが簡単にそのアプリケーションを逆コンパイルして取得することができます。そうすればどこからでもリクエストを行うことができます。 –

+0

私はそれがクライアント - サーバシステムを構造化することを間違いなく助けて、セキュリティの拡張と追加をはるかに簡単にすると考えています。私はこれがセキュリティを改善する方法のOPの質問に役立つと信じています。 –

+1

アプリケーションを適切に構造化し、標準に準拠させることは、もちろん開発中に常に助けます。私のポイントは、それ自身のRESTfulなWebサービスは他のどの標準よりも安全ではないということでした。あなたはいつも実際にセキュリティを実装する必要があります。私は思うほど多くの事柄があるので、それ自体の問題は広すぎると思います。それはすべて、アプリが実際にやっていることにも依存します。 –

関連する問題