1

HTTP_USER_AGENTここで使用したサーバー側のPHPスクリプトからのデータをモバイルアプリ(iOS)のみに許可したい

$userAgent = $_SERVER['HTTP_USER_AGENT'];

App Name、、CF Network Infoを表示しますDarwin OS Info

これを利用してHTTP送信情報に関する情報を入手しました。しかし、私はもっと詳細が必要です。

私のアプリに関する詳細情報を取得し、モバイルアプリ(iOS)のみを受け入れてサーバー側のPHPスクリプトからデータを取得する方法はありますか?

4

4 に答える 4

1

私たちのアプリでもこの問題に遭遇しました。解決策は実際には非常に単純であることがわかりました。

手順は2つだけです。

1)MD5秘密鍵を1回生成し、文字列としてアプリに保存します(MD5鍵を生成する場合はどのように実行してもかまいません)

2)WebサービスにPOST(GETを使用しない、より安全な)要求を行う場合は、この秘密鍵を渡します

これを行うと、Webサービスはリクエストがアプリから行われたことを認識します。

この方法には、追加の利点もあります。

有料と無料の2つのバージョンのアプリがあり、それぞれに異なるMD5秘密鍵を使用すると、リクエストを行ったのが無料バージョンか有料バージョンかを識別できます。

于 2012-08-29T06:00:33.673 に答える
1

サーバー側スクリプトをアプリを実行しているモバイルデバイスのみにロックする唯一の適切な方法は、クライアント証明書の検証を使用してHTTPSを実装することです。

これを超えて、デバイスが実行されていることを示すものはiOSすべて、どのデバイスからでも簡単に送信できます。ここで最も明白なケースは、デバイスでSafariを実行し、そこからスクリプトにアクセスすることです。

于 2012-08-29T05:50:56.787 に答える
0

モバイルアプリの情報をブラウザにエミュレートできるため、これは100%可能ではありません。Firefoxプラグインを確認してください。

しかし、小さなチェックとして:

function isMobileiOS($useragent){
    if(stripos($useragent, 'iPod') !== false || stripos($useragent, 'iPhone') !== false || stripos($useragent, 'iPad') !== false){
        return true;
    }
    return false;
}

$mobile = isMobileiOS($_SERVER['HTTP_USER_AGENT']);

これはiOSデバイスをキャッチします。

于 2012-08-29T05:12:48.663 に答える
0

試す

$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");

ブラウザがiPhoneから使用されている場合はtrueを返します。iPhoneのクロームのようなサードパーティのブラウザで動作するかどうかはわかりません。

于 2012-08-29T05:16:44.660 に答える