java.lang.Object
java.security.Permission
java.security.BasicPermission
java.net.NetPermission
- すべての実装されたインタフェース:
Serializable
,Guard
public final class NetPermission extends BasicPermission
このクラスは、各種のネットワーク・アクセス権のために使います。 NetPermissionは名前(「ターゲット名」とも呼ばれる)を持ちますが、アクション・リストは持ちません。ユーザーは名前付きアクセス権を持つ場合と、持たない場合があります。
ターゲット名には、ネットワーク・アクセス権(下記を参照)の名前を指定します。 命名規約は、階層的なプロパティ命名規約に従います。 また、ターゲット名のあとにアスタリスクを指定し(「.」のあとに指定するか、単独で指定)、ワイルドカードによる照合を行うこともできます。 たとえば、「foo.*」や「*」はワイルドカード一致を示しますが、「*foo」や「a*b」はそうではありません。
次の表に、標準的なNetPermissionターゲット名を示します。各表には、許可されるアクセス権についての説明と、アクセス権をコードに付与するリスクについての説明が示されています。
アクセス権ターゲット名 | アクセス権により許可される操作 | このアクセス権を許可した場合のリスク |
---|---|---|
allowHttpTrace | HttpURLConnection内でHTTP TRACEメソッドを使用する機能。 | HTTP TRACEを使用する悪意のあるコードは、他の方法ではアクセスできないHTTPヘッダー内のセキュリティ保護を必要とする情報(Cookieなど)にアクセスできる場合があります。 |
accessUnixDomainSocket | 「Unixドメイン」ソケットのローカル・アドレスを受け入れ、バインド、接続または取得する機能。 | 悪意のあるコードは、Unixドメイン・ソケットを使用してローカル・プロセスに接続したり、同じパス名にバインドすることでローカル・プロセスに偽装する可能性があります(必要なオペレーティング・システム権限があることを前提としています)。 |
getCookieHandler | 高レベルのセキュリティ保護を必要とする、HTTPセッションのCookie情報を処理するCookieハンドラを取得する機能。 | 悪意のあるコードは、Cookieハンドラを取得することで、高レベルのセキュリティ保護を必要とするCookie情報にアクセスできます。 Webサーバーのなかには、Cookieを使ってアクセス制御情報などのユーザーの非公開情報を保存したり、ユーザーの閲覧傾向を追跡したりするものもあります。 |
getNetworkInformation | ローカル・ネットワークのインタフェースに関するすべての情報を取得する機能。 | 悪意のあるコードは、MACアドレスなどのネットワーク・ハードウェアに関する情報を読み取ることができます。これは、ローカルIPv6アドレスの作成に使用されることがあります。 |
getProxySelector | ネットワーク接続の確立時に使用すべきプロキシの決定に使用されるプロキシ・セレクタを取得する機能。 | 悪意のあるコードは、ProxySelectorを取得することで、内部ネットワーク上のプロキシ・ホストやそのポートを発見することができます。すると、それらが攻撃の標的になる可能性があります。 |
getResponseCache | ローカル応答キャッシュへのアクセス機能を提供する応答キャッシュを取得する機能。 | ローカル応答キャッシュにアクセスできる悪意のあるコードは、セキュリティ保護を必要とする情報にアクセスできます。 |
requestPasswordAuthentication | システムに登録されたオーセンティケータにパスワードを要求。 | 悪意のあるコードにより、このパスワードが盗まれる可能性があります。 |
setCookieHandler | 高レベルのセキュリティ保護を必要とする、HTTPセッションのCookie情報を処理するCookieハンドラを設定する機能。 | 悪意のあるコードは、Cookieハンドラを設定することで、高レベルのセキュリティ保護を必要とするCookie情報にアクセスできます。 Webサーバーのなかには、Cookieを使ってアクセス制御情報などのユーザーの非公開情報を保存したり、ユーザーの閲覧傾向を追跡したりするものもあります。 |
setDefaultAuthenticator | プロキシまたはHTTPサーバーが証明書を要求したときに使用する、認証情報の取得方法を設定する。 | これにより、ユーザーからの入力を取得のときに、ユーザーの認証情報入力をモニターし、それを盗むオーセンティケータが悪意のあるコードにより設定される可能性があります。 |
setProxySelector | ネットワーク接続の確立時に使用すべきプロキシの決定に使用されるプロキシ・セレクタを設定する機能。 | 悪意のあるコードは、ネットワーク・トラフィックをある任意のネットワーク・ホストに転送するようなProxySelectorを設定できます。 |
setResponseCache | ローカル応答キャッシュへのアクセス機能を提供する応答キャッシュを設定する機能。 | ローカル応答キャッシュにアクセスできる悪意のあるコードは、セキュリティ保護を必要とする情報にアクセスしたり、応答キャッシュ内に不正なエントリを作成したりできます。 |
setSocketImpl | ユーザーがSocketImplを指定したソケットまたはServerSocketのサブクラスを作成する機能。 | 悪質なユーザー定義のSocketImplsでは、SocketImplの保護されているフィールドにアクセスできるかどうかによって、ソケットとServerSocketの動作を突然変更できます。 |
specifyStreamHandler | URLの作成時にストリーム・ハンドラを指定。 | 悪質なコードが、それが実際にアクセスする場所から実効バイトを取得するストリーム・ハンドラを指定して、通常はアクセスすることのないリソース(file:/foo/fum/のように)を使ってURLを作成する可能性があります。 このようにしてシステムをだまして、あるクラスの出所を偽り、そのクラスのProtectionDomain/CodeSourceを作成させてしまう可能性があります。 |
- 実装上のノート:
- 実装は追加のターゲット名を定義するかもしれませんが、名前の衝突を避けるために逆ドメイン名表記法などの命名規則を使用する必要があります。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明NetPermission
(String name) 指定された名前でNetPermissionを新しく作成します。NetPermission
(String name, String actions) 指定された名前でNetPermissionオブジェクトを新しく作成します。 -
メソッドのサマリー
クラス java.security.BasicPermissionで宣言されたメソッド
equals, getActions, hashCode, implies, newPermissionCollection
クラス java.security.Permissionで宣言されたメソッド
checkGuard, getName, toString
-
コンストラクタの詳細
-
NetPermission
public NetPermission(String name) 指定された名前でNetPermissionを新しく作成します。 名前は、NetPermissionのシンボリック名(「setDefaultAuthenticator」など)です。名前の末尾には「*」や「.*」を付けて、ワイルドカードを指定できます。- パラメータ:
name
- NetPermissionの名前。- 例外:
NullPointerException
-name
がnull
の場合。IllegalArgumentException
-name
が空である場合。
-
NetPermission
指定された名前でNetPermissionオブジェクトを新しく作成します。 この名前はNetPermissionのシンボリック名で、actionsのStringのactionsは現在使用されないためnullにする必要があります。- パラメータ:
name
- NetPermissionの名前。actions
- nullでなければならない。- 例外:
NullPointerException
-name
がnull
の場合。IllegalArgumentException
-name
が空である場合。
-