`
kiki1120
  • 浏览: 314528 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

《Java安全性编程指南》—第7章 核心Java安全模块和Applet安全(2)

阅读更多

Java安全管理器

    Java安全管理器处理必要的权限检查。缺省的实现是Java.lang.SecurityManager类中,如有必要可以派生出子类或取代之。对于不安全的行为,Java就会强制安全管理器进行安全检查。

安全管理器是如何工作的:

  1. 你的代码调用需要权限的代码,如new FileInputStream("filename")
  2. 那代码就会调用安全管理器检查权限
  3. 安全管理器决定权限是否允许。这通常(而不是必须的)会与java.security.AccessController交互。如果没有权限,就会出现运行异常:java.lang.SecurityException,否则不会返回异常而正常运行。安全管理器会监督整个执行线程已确保每个类都有相应权限。
  4. 如果没有异常,说明有足够的权限,程序将继续正常运行。

设置安全管理器有2个常用的方法

  1. 执行命令    java -Djava.security.manager FileWriteTest
  2. 程序中指定

           SecurityManager security = new SecurityManager();
           System.setSecurityManager(security);

 

Java.policy文件

    某些权限必须赋予类,这是在java.policy文件中定义,java.policy文件保存在目录$JAVA_HOME/jre/lib/security中。

 

Java中的权限

    Java本身定义了许多权限,顶层类包括:

  • java.security.AllPermission—对所有文件都有的全部权限
  • java.security.BasicPermission—大多数简单权限的超类
  • java.io.FilePermission—文件读写权限
  • java.net.SocketPermission—打开连接远程计算机的包,并用DNS解析主机名

BasicPermission有许多派生类定义其他权限

  • javax.sound.sampled.AudioPermission—访问音频函数的权限,如播放、录音等。
  • javax.awt.AWTPermission—与图形有关的行为的权限,比如访问剪贴板或读AWT事件。
  • java.net.NetPermission—处理URL的权限,必然增加一个口令认证。
  • java.util.PropertyPermission—读写系统属性的权限。
  • java.lang.reflect.ReflectPermission—使用reflection的权限。
  • java.lang.RuntimePermission—运行时安全元素的权限,比如设置类装载器或安全管理器。
  • java.security.SecurityPermission—安全元素的权限,像安全策略和加密服务。
  • java.io.SerializablePermission—读写可序列化对象的权限。
  • java.sql.SQLPermission—设置SQL日志的权限。
分享到:
评论

相关推荐

    聊天系统(java+applet).zip

    Applet部分可能涉及到浏览器兼容性和安全性的考虑,因为Applet已逐渐被Web应用的新技术如WebSockets和Web Apps所取代。 在实际开发过程中,考虑到Applet的安全性和现代浏览器对其的支持度下降,更现代的解决方案...

    java语言,入门级,适合初学者

    2. **面向对象的**:这是Java的核心特性,支持封装、继承和多态,使程序设计更加模块化和可维护。 3. **健壮的**:Java拥有严格的类型检查机制,自动管理内存,提供垃圾回收机制,减少了程序出错的可能性。 4. **...

    Java 高手速成方法

    掌握WebLogic、JBoss等J2EE应用服务器的管理与配置,以及如何利用其高级特性(如集群、连接池、分布式事务支持),对于优化应用性能、确保高可用性和安全性具有重要意义。 #### 14. 面向方面编程(AOP) 最后,...

    JDK11文档 jdk-11.0.4 API文档

    9. **安全性更新**:JDK11对SSL/TLS协议进行了升级,增强了加密算法的安全性,例如默认禁用了弱的RSA密钥和DES密码。 10. **其他改进**:还有许多其他的小改进,比如JShell(也称REPL,Read-Eval-Print Loop)的...

    JavaScript 权威指南(第四版)

    2. **安全性**:讨论JavaScript的安全边界,如同源策略、沙盒环境、跨域资源共享(CORS)、XSS(跨站脚本攻击)防护和CSRF(跨站请求伪造)防御等,帮助开发者构建安全的Web应用。 3. **词法结构**:详细解析...

    J2EE WEB开发指南

    - **概念**:J2EE(Java 2 Platform, Enterprise Edition)是一种基于Java的平台,用于开发和部署企业级应用。分布式多层应用是指应用由多个逻辑层组成,每一层负责不同的功能,这些层可以分布在不同的物理服务器上...

    J2EE规范&中间件介绍

    J2EE(Java 2 Platform, Enterprise Edition)是一种专为企业级应用开发设计的技术框架,它旨在通过简化和标准化应用程序的开发与部署过程,提高应用系统的可移植性、安全性及复用价值。J2EE的核心是一组技术规范和...

    JSP 程序设计从入门到精通 PDF 教程

    #### 第7章 JSP数据库操作例程 ##### 7.1 安装mysql - **7.1.1 第一步:下载mysql**:这部分介绍了如何下载MySQL数据库。 - **7.1.2 第二步:安装、配置mysql**:这里详细解释了MySQL数据库的安装和配置过程。 - *...

Global site tag (gtag.js) - Google Analytics