モジュール java.base
パッケージ 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
関連項目:
BasicPermission, Permission, Permissions, PermissionCollection, SecurityManager, 直列化された形式
  • コンストラクタの詳細

    • NetPermission

      public NetPermission(String name)
      指定された名前でNetPermissionを新しく作成します。 名前は、NetPermissionのシンボリック名(「setDefaultAuthenticator」など)です。名前の末尾には「*」や「.*」を付けて、ワイルドカードを指定できます。
      パラメータ:
      name - NetPermissionの名前。
      例外:
      NullPointerException - namenullの場合。
      IllegalArgumentException - nameが空である場合。
    • NetPermission

      public NetPermission(String name, String actions)
      指定された名前でNetPermissionオブジェクトを新しく作成します。 この名前はNetPermissionのシンボリック名で、actionsのStringのactionsは現在使用されないためnullにする必要があります。
      パラメータ:
      name - NetPermissionの名前。
      actions - nullでなければならない。
      例外:
      NullPointerException - namenullの場合。
      IllegalArgumentException - nameが空である場合。