web-dev-qa-db-ja.com

アプリケーションが接続を確認する前に少なくとも1分間プロキシをインターセプトする要求を維持する方法はありますか?

AndroidアプリケーションでSSLピン留めをバイパスしましたが、問題はアプリケーションが私の代行受信プロキシでリクエストを再生できないことです。ネットワークの問題またはインターネット接続を確認してください、遅いかもしれませんが、SSLのピン留めをバイパスしない限り、以前は同じことを言っていました。

私の想定では、アプリケーションはサーバーから迅速に応答を受け取ることを期待するような方法でコーディングされています。代行受信プロキシのリクエストで遊んでいるため、リクエストはまだプロキシ上にあり、サーバーに送信されていないため、サーバーからの応答はありません。

それから抜け出す方法はありますか?

2
Sam

答えはほぼ確実です:いいえ

クライアントがサーバーから応答を受信するまでクライアントが待機する時間の長さは、クライアントによって完全に構成可能です。このアプリで使用されているHTTPライブラリにはデフォルトで短い時間が設定されているか、アプリ自体がリクエストに短いタイムアウトを設定しています。例として、CURLを使用したリクエストの最大待機時間を設定する方法については このドキュメント を参照してください。アプリの最大タイムアウトがたとえば2秒に設定されている場合、プロキシレベルで待機時間を長くするためにできることは何もありません。

エミュレーターでアプリを実行している場合は、より細かく制御できます(実行中に効果的に一時停止できるため)。スマートフォンをルート化した場合、それをだます方法があるかもしれませんが、何もありません。純粋にプロキシレベルで実行できます。

唯一のオプションは、プロキシで応答を事前設定するか、またはスクリプトオプションのいずれかによって、応答をすばやく変更する方法を理解することです。

また、一般的な経験則として、現代のネットワークの世界では1分は長い時間です。私の経験では、2秒でも遅い応答です。ほとんどのクライアントでは、デフォルトのタイムアウトが分単位ではなく秒単位で測定されると思います。開発者がAPIエンドポイントが非常に迅速に戻ることを開発者が知っていて、ユーザーが遅延したエクスペリエンスに対処する必要がない場合は、高パフォーマンス向けに構築されたモバイルアプリがさらに小さなタイムアウトを使用する可能性があります。

1
Conor Mancone