2012-01-19 11 views
2

PhoneGapソリューションを作成しています。私のサイトからデータを取得するために、jsonpを使用しています。他の人が私のWebサービスにアクセスするのを防ぐにはどうしたらいいですか?

このデータを作成するために高価な作業がたくさんありました。自分のサイトと、そのアプリケーションを持っているユーザーだけがデータを取得できるようにしたいと考えています。

データを取得できないようにするにはどうすればよいですか?

答えて

0

ステップ1は、jsonpのURLとあなたのコンテンツが入っている他のURLをパスワードで保護することです。 ステップ2では、スニッファがあなたのデータを取得するのを避けるためにもhttpsを使います。

あなたがここでやっていると思いますが、そこに他のウェブサイトはどんなに難しくありませんか?

+0

1)ユーザーはログインせずにアプリを使用できる必要があります。 2)どのようにjsonpのURLをpasswordprotectできますか? 3)httpsを使用すると、アプリからの各リクエストはhttpsを使用する必要があります。これはパフォーマンスの問題を引き起こす可能性があります。 – Steven

1

あなたがしたいことは、相互認証されたSSLを使用することです。サーバーはアプリケーションからの着信接続のみを受け付け、アプリケーションはサーバーとの通信のみを行います。

ここには、高度なアプローチがあります。自己署名入りのサーバーSSL証明書を作成し、Webサーバーに展開します。次に、自己署名付きクライアントを作成し、アプリケーション内でリソースとして展開します。クライアント側のSSL認証を要求し、生成したクライアント証明書のみを受け入れるようにサーバーを構成します。そのクライアント側の証明書を使用して自分自身を識別し、その部分のサーバーにインストールしたサーバー側の証明書を1つだけ受け入れるようにクライアントを構成します。

アプリ以外の誰かがあなたのサーバーに接続しようとすると、サーバーはあなたのアプリに含まれているクライアント証明書を提示しない受信SSL接続を拒否するため、SSL接続は作成されません。

0

どのようなアプリですか?

JSONはHTMLアプリケーションを意味します。その場合は、認証とセッションを確立し、セッションCookieを使用して後続のajax呼び出しを認証する必要があります。

クライアント(つまりJava)にデプロイされたアプリの場合、アプリにコンパイルされた静的ナンスを使用し、リクエストの起点を確認するためにリクエストごとにリクエストパラメータの塩漬けのハッシュを送信すれば十分でしょう。

しかし、誰かが本当にそれを逆コンパイルしてリバースエンジニアリングするのが難しくないと判断された場合。

どちらもスマートサーバーが必要です。

どのようにjsonpのURLをパスワードで保護できますか?

erk!

関連する問題