4

iPhone専用に構築されたC#のWebページにアクセスしようとしています。"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"私は、ユーザーエージェントを偽装して、自分がiPhoneであるとWebサイトに思わせることができることを発見しました。

ただし、一部のWebサイトでは、最初にWebサイトをホーム画面に追加するようにという応答しか表示されません。"window.navigator.standalone"応答を見ると、Webページがどのようにアクセスされたかを確認するためにいくつかの変数をチェックしているように見えます。グーグルした後(ここを参照)、これはWebページがホーム画面からアクセスされたかどうかを検出する一般的な方法のようです。

したがって、問題は、ホーム画面への追加を継続的に要求するのではなく、Webページが読み込まれるように、残りの要求をスプーフィングする方法を知っている人はいますか?

4

1 に答える 1

3

window.navigator.standalone は、サイトが起動された場所 (ホーム画面またはサファリ) を確認するためにクライアント側で実行されるスクリプト テストです。リクエストでユーザー エージェントをスプーフィングすると、サイトはコンテンツを提供しますが、サイトが window.navigator.standalone に問い合わせている場合は、明らかに偽のリターンです。

スクリプトを実行しているかどうか、または何を達成しようとしているのかについて言及していないので、リクエストしているサイトはサファリの起動バージョンを最初にレンダリングするように設計されており、変数をテストすると別のリクエストが行われると推測できます。

詳細を教えていただけますか?リクエストしているサイトの URL でしょうか。

アップデート:

わかりました、私は正しいです。そのスクリプトが実行されない場合、適切なサイトが表示されません。私はあなたがあなた自身の要求を扱っていると思います。必要なことは、別のリクエストを POST として Test.aspx に送信し、ポスト データを hidHomeScreen=true にして、フォームの送信をエミュレートすることです。

残念ながら、検出はサイトの実装によって異なる可能性があるため、これは一般的な解決策ではありません。

于 2011-05-19T03:29:41.277 に答える