ページを要求しているJavaアプリケーションがあり、それをブロックしたいと思います。
これを行う方法の1つは、セッションまたはCookieを使用することでしたが、JavaURLメソッドがそれらを処理できるかどうかはわかりませんでした。
セッションまたはCookieを使用する以外に、このJavaアプリケーションからの要求を区別してブロックできる別の方法はありますか?一意のJavaユーザーエージェントヘッダーがあることは知っていますが、もっと正確にしたいと思います。
ページを要求しているJavaアプリケーションがあり、それをブロックしたいと思います。
これを行う方法の1つは、セッションまたはCookieを使用することでしたが、JavaURLメソッドがそれらを処理できるかどうかはわかりませんでした。
セッションまたはCookieを使用する以外に、このJavaアプリケーションからの要求を区別してブロックできる別の方法はありますか?一意のJavaユーザーエージェントヘッダーがあることは知っていますが、もっと正確にしたいと思います。
URLは、話しかけようとしているサーバーを表すだけです。接続を開くなどの便利な方法がいくつかありますが、それだけです。
セッションは、CookieまたはURL書き換えの2つの方法のいずれかで処理されます。これらは、URLクラスとはほとんどまたはまったく関係がありません(後者のURLに配置されるセッションIDを除く)。
パスワード(http基本、ダイジェストなど)またはSSL証明書の検証を有効にする以外は、ユーザーエージェントが最善の策のようです。そうは言っても、ユーザーエージェントはクライアント側の裁量で完全であり、他のブラウザになりすますためにクライアントによって簡単に変更できます。
見出しの質問に対する答えは、URL.openXxx
メソッドがCookieを理解しないということです。
(サーバーが要求URL自体でセッショントークンを受け入れるように構成されている場合、URL.openXxx
メソッドは邪魔になりません。ただし、そのアプローチは安全ではありません。)
次に、あなたの質問の本文に行きます。
...セッションまたはCookieを使用する以外に、このJavaアプリからのリクエストを区別してブロックできる別の方法はありますか?
この時点で、サーバー側でリクエストをブロックすることについて話していると思います。そして、「悪者」クライアントがリクエストを送信するために使用するものは、今では重要ではないことを指摘する必要があります。(URL
またはApache HTTPComponentsを使用することも、アセンブリコードにHTTPプロトコルスタックを実装することもできます!)
したがって、本当の問題は、不要な要求をブロックするためのオプションが何であるかということです。そして答えは:
要約すると、Cookieが最善のソリューションであるため、「善良な」クライアントアプリケーションは、Cookieの管理と要求でのCookieの設定が可能なライブラリを使用する必要があります。