runtimepermission.html

来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 447 行 · 第 1/2 页

HTML
447
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.5.0_03) on Wed Nov 02 09:48:36 CST 2005 --><META http-equiv="Content-Type" content="text/html; charset=gb2312"><TITLE>RuntimePermission (Java 2 Platform SE 5.0)</TITLE><META NAME="keywords" CONTENT="java.lang.RuntimePermission class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){    parent.document.title="RuntimePermission (Java 2 Platform SE 5.0)";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">  <TR ALIGN="center" VALIGN="top">  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>类</B></FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/RuntimePermission.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A>&nbsp;</TD>  </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup>&nbsp;2&nbsp;Platform<br>Standard&nbsp;Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;<A HREF="RuntimeException.html" title="java.lang 中的类"><B>上一个类</B></A>&nbsp;&nbsp;<A HREF="SecurityException.html" title="java.lang 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../index.html@java_2Flang_2FRuntimePermission.html" target="_top"><B>框架</B></A>  &nbsp;&nbsp;<A HREF="RuntimePermission.html" target="_top"><B>无框架</B></A>  &nbsp;&nbsp;<SCRIPT type="text/javascript">  <!--  if(window==top) {    document.writeln('<A HREF="../../allclasses-noframe.html"><B>所有类</B></A>');  }  //--></SCRIPT><NOSCRIPT>  <A HREF="../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">  摘要:&nbsp;嵌套&nbsp;|&nbsp;字段&nbsp;|&nbsp;<A HREF="#constructor_summary">构造方法</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.security.BasicPermission">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息:&nbsp;字段&nbsp;|&nbsp;<A HREF="#constructor_detail">构造方法</A>&nbsp;|&nbsp;方法</FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">java.lang</FONT><BR>类 RuntimePermission</H2><PRE><A HREF="Object.html" title="java.lang 中的类">java.lang.Object</A>  <IMG SRC="../../resources/inherit.gif" ALT="继承者 ">java.security.Permission      <IMG SRC="../../resources/inherit.gif" ALT="继承者 ">java.security.BasicPermission          <IMG SRC="../../resources/inherit.gif" ALT="继承者 "><B>java.lang.RuntimePermission</B></PRE><DL><DT><B>所有已实现的接口:</B> <DD>java.io.Serializable, java.security.Guard</DD></DL><HR><DL><DT><PRE>public final class <B>RuntimePermission</B><DT>extends java.security.BasicPermission</DL></PRE><P>该类用于运行时权限。RuntimePermission 包含一个名称(也称为&ldquo;目标名称&rdquo;),但不包含操作列表;您可以有或没有指定的权限。<P>目标名称是运行时权限的名称(参见下面内容)。命名约定遵守分层属性命名约定。另外,名称的末尾可能出现一个星号,星号前有一个&ldquo;.&rdquo;(也可能只有一个星号),用来表示通配符。例如:&ldquo;loadLibrary.*&rdquo;或&ldquo;*&rdquo;是有效的,而&ldquo;*loadLibrary&rdquo;或&ldquo;a*b&rdquo;则是无效的。<P>下表列出了所有可能的 RuntimePermission 目标名称,并描述了每个名称允许使用何种权限,还讨论了为代码授予该权限的风险。<p> <table border=1 cellpadding=5 summary="permission target name,   what the target allows,and associated risks"> <tr><th>权限目标名称</th><th>权限允许做什么</th><th>允许使用该权限的风险</th> </tr> <tr>   <td>createClassLoader</td>   <td>创建类加载器</td>   <td>授予该权限极其危险。能够实例化自己的类加载器的恶意应用程序可能会在系统中装载自己的恶意类。这些新加载的类可能被类加载器置于任意保护域中,从而自动将该域的权限授予这些类。</td> </tr> <tr>   <td>getClassLoader</td>   <td>类加载器的检索(即调用类的类加载器)</td>   <td>这将授予攻击者得到具体类的加载器的权限。这很危险,由于攻击者能够访问类的类加载器,所以攻击者能够加载其他可用于该类加载器的类。通常攻击者不具备这些类的访问权限。</td> </tr> <tr>   <td>setContextClassLoader</td>   <td>线程使用的上下文类加载器的设置</td>   <td>在需要查找可能不存在于系统类加载器中的资源时,系统代码和扩展部分会使用上下文类加载器。授予 setContextClassLoader 权限将允许代码改变特定线程(包括系统线程)使用的上下文类加载器。</td> </tr> <tr>   <td>enableContextClassLoaderOverride</td>   <td>线程上下文类加载器方法的子类实现</td>   <td>在需要查找可能不存在于系统类加载器中的资源时,系统代码和扩展部分会使用上下文类加载器。授予 enableContextClassLoaderOverride 权限将允许线程的子类重写某些方法,这些方法用于得到或设置特定线程的上下文类加载器。</td> </tr> <tr>   <td>setSecurityManager</td>   <td>设置安全管理器(可能会替换现有的)</td>   <td>安全管理器是允许应用程序实现安全策略的类。授予 setSecurityManager 权限将通过安装一个不同的、可能限制更少的安全管理器,来允许代码改变所用的安全管理器,因此可跳过原有安全管理器所强制执行的某些检查。</td> </tr> <tr>   <td>createSecurityManager</td>   <td>创建新的安全管理器</td>   <td>授予代码对受保护的、敏感方法的访问权,可能会泄露有关其他类或执行堆栈的信息。</td> </tr> <tr>   <td>getenv.{variable name}</td>   <td>读取指定环境变量的值</td>   <td>此权限允许代码读取特定环境变量的值或确定它是否存在。如果该变量含有机密数据,则这项授权是很危险的。</td> </tr> <tr>   <td>exitVM</td>   <td>暂停 Java 虚拟机</td>   <td>此权限允许攻击者通过自动强制暂停虚拟机来发起一次拒绝服务攻击。注意:自动为那些从应用程序类路径加载的全部代码授予 "exitVM" 权限,从而使这些应用程序能够自行中止。</td> </tr> <tr>   <td>shutdownHooks</td>   <td>虚拟机关闭挂钩的注册与取消</td>   <td>此权限允许攻击者注册一个妨碍虚拟机正常关闭的恶意关闭挂钩。</td> </tr> <tr>   <td>setFactory</td>   <td>设置由 ServerSocket 或 Socket 使用的套接字工厂,或 URL 使用的流处理程序工厂</td>   <td>此权限允许代码设置套接字、服务器套接字、流处理程序或 RMI 套接字工厂的实际实现。攻击者可能设置错误的实现,从而破坏数据流。</td> </tr> <tr>   <td>setIO</td>   <td>System.out、System.in 和 System.err 的设置</td>   <td>此权限允许改变标准系统流的值。攻击者可以改变 System.in 来监视和窃取用户输入,或将 System.err 设置为 "null" OutputStream,从而隐藏发送到 System.err 的所有错误信息。 </td> </tr> <tr>   <td>modifyThread</td>   <td>修改线程,例如通过调用线程的 <tt>interrupt</tt>、<tt>stop</tt>、<tt>suspend</tt>、<tt>resume</tt>、<tt>setDaemon</tt>、<tt>setPriority</tt>、<tt>setName</tt> 和 <tt>setUncaughtExceptionHandler</tt> 方法</td>   <td>此权限允许攻击者修改系统中任意线程的行为。</td> </tr> <tr>   <td>stopThread</td>   <td>通过调用线程的 <code>stop</code> 方法停止线程</td>   <td>如果系统已授予代码访问该线程的权限,则此权限允许代码停止系统中的任何线程。此权限会造成一定的危险,因为该代码可能通过中止现有的线程来破坏系统。</td> </tr> <tr>   <td>modifyThreadGroup</td>   <td>修改线程组,例如通过调用 ThreadGroup 的 <code>destroy</code>、<code>getParent</code>、<code>resume</code>、<code>setDaemon</code>、<code>setMaxPriority</code>、<code>stop</code> 和  <code>suspend</code> 方法</td>   <td>此权限允许攻击者创建线程组并设置它们的运行优先级。</td> </tr> <tr>   <td>getProtectionDomain</td>   <td>检索类的 ProtectionDomain </td>   <td>此权限允许代码获得特定代码源的安全策略信息。虽然获得安全策略信息并不足以危及系统安全,但这确实会给攻击者提供了能够更好地定位攻击目标的其他信息,例如本地文件名称等。</td> </tr> <tr>   <td>readFileDescriptor</td>   <td>读取文件描述符</td>   <td>此权限允许代码读取与文件描述符读取相关的特定文件。如果该文件包含机密数据,则此操作非常危险。</td> </tr> <tr>   <td>writeFileDescriptor</td>   <td>写入文件描述符</td>   <td>此权限允许代码写入与描述符相关的特定文件。此权限很危险,因为它可能允许恶意代码传播病毒,或者至少也会填满整个磁盘。</td> </tr>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?