- 浏览: 427039 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
Glogo:
楼主您好,我在试验您的代码的时候发现新开的三个子线程并没有一直 ...
java 高并发 ReentrantLock -- 可重入的锁 -
univasity:
最近发觉也被限速了,投诉一下就好一会~~ 看来明天又要和电信M ...
ADSL上网速度慢 都是帐号限速惹的祸 -
liuyuanhui0301:
java 高并发 ReentrantLock -- 可重入的锁 -
dang_java:
呵.很好的说明文档.
JXTA技术与应用发展 -
helloqidi:
谢谢,学习了
SQL中exists和in的区别
转载自: http://blog.sina.com.cn/s/blog_4b00fd1b0100c9ef.html
每个Java应用都可以有自己的安全管理器,它是防范恶意攻击的主要安全卫士。安全管理器通过执行运行阶段检查和访问授权,以实施应用所需的安全策略,从而保护资源免受恶意操作的攻击。实际上,安全管理器根据Java安全策略文件决定将哪组权限授予类。然而,当不可信的类和第三方应用使用JVM时,Java安全管理器将使用与JVM相关的安全策略来识别恶意操作。在很多情况下,威胁模型不包含运行于JVM中的恶意代码,此时Java安全管理器便不是必需的。当安全管理器检测到违反安全策略的操作时,JVM将引发AccessControlException或SecurityException。
在Java应用中,安全管理器是由System类中的方法setSecurityManager设置的。要获得当前的安全管理器,可以使用方法getSecurityManager。
java.lang.SecurityManager类包含了很多checkXXXX方法,如用于判断对文件访问权限的checkRead(String file)方法。这些检查方法调用SecurityManager.checkPermission方法,后者根据安全策略文件判断调用应用是否有执行所请求的操作权限。如果没有,将引发SecurityException。
如果想让应用使用安全管理器和安全策略,可在启动JVM时设定-Djava.security.manager选项,还可以同时指定安全策略文件。如果在应用中启用了Java安全管理器,却没有指定安全策略文件,那么Java安全管理器将使用默认的安全策略,它们是由位于目录$JAVA_HOME/jre/lib/security中的java.policy定义的。
实现安全管理器步骤:
(1) 创建一个SecurityManager的子类;
(2) 覆盖一些方法。
import java.io.*;
public class TestSecurity
{
public static void main(String args[])
{
try {
System.setSecurityManager(new PasswordSecurityManager("123456"));
} catch (SecurityException se) {
System.out.println("SecurityManager already set!");
}
try {
//DataInputStream fis = new DataInputStream(new FileInputStream("input.txt"));
BufferedReader fis = new BufferedReader(new FileReader("input.txt"));
//DataOutputStream fos = new DataOutputStream( new FileOutputStream("output.txt"));
BufferedWriter fos = new BufferedWriter(new FileWriter("output.txt"));
String inputString;
while ((inputString = fis.readLine()) != null) {
//fos.writeBytes(inputString);
//fos.writeByte('\n');
fos.write(inputString);
fos.write('\n');
}
fis.close();
fos.close();
} catch (IOException ioe) {
System.out.println("I/O failed for SecurityManagerTest.");
}catch(Exception e)
{
System.out.println(e.toString());
}
}
}
import java.io.*;
class PasswordSecurityManager extends SecurityManager {
private String password;
PasswordSecurityManager(String password) {
super();
this.password = password;
}
private boolean accessOK() {
int c;
//DataInputStream dis = new DataInputStream(System.in);
BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));
String response;
System.out.println("What's the secret password?");
try {
response = dis.readLine();
if (response.equals(password))
return true;
else
return false;
} catch (IOException e) {
return false;
}
}
public void checkRead(FileDescriptor filedescriptor) {
if (!accessOK())
throw new SecurityException("Not a Chance!");
}
public void checkRead(String filename) {
if (!accessOK())
throw new SecurityException("No Way!");
}
public void checkRead(String filename, Object executionContext) {
if (!accessOK())
throw new SecurityException("Forget It!");
}
public void checkWrite(FileDescriptor filedescriptor) {
if (!accessOK())
throw new SecurityException("Not!");
}
public void checkWrite(String filename) {
if (!accessOK())
throw new SecurityException("Not Even!");
}
}
发表评论
-
深入JVM锁机制
2011-09-19 01:00 971目前在Java中存在两种 ... -
java 正则表达式 非捕获组(特殊构造)Special Constructs(Non-Capturing)
2011-06-20 23:15 1640针对Java API文档中的正则表达式关于特殊构造(非捕获组) ... -
Java文件映射[mmap]揭秘
2011-06-08 20:10 1169前言 相信现在 ... -
原创 java的Mmap二三事
2011-06-08 19:46 1195转自 :http://blog.csdn.net/kabini ... -
java 安全沙箱模型详解
2011-04-18 16:29 936起到第一道安全保障作 ... -
非阻塞算法-ReentrantLock代码剖析之ReentrantLock.lock
2011-04-15 13:59 1078ReentrantLock是java.util.concurr ... -
CyclicBarrier与CountDownLatch、栅栏与计数器
2011-04-15 10:39 1459在多线程设计中,我猜常常会遇到线程间相互等待以及某个线程等待1 ... -
Java KeyStore
2011-04-13 17:17 1463简介Java自带的keytool工具是个密钥和证书管理工具。它 ... -
Security Managers and the JavaTM 2 SDK
2011-04-12 13:37 771The original Link : http://do ... -
Something about SecurityManager
2011-04-12 13:33 779The Java Security was made up o ... -
Using the Java SecurityManager with Tomcat
2011-04-12 13:30 991Why use a SecurityManager? The ... -
Java对象的强、软、弱和虚引用(1)
2011-04-01 08:44 794本文介绍Java对象的强 ... -
Java对象的强引用、软引用、弱引用和虚引用
2011-04-01 08:39 901在JDK1.2以前的版本中, ... -
java 高并发 ReentrantLock -- 可重入的锁
2011-03-30 08:09 2364ReentrantLock -- 可重入的锁 可重入锁指 ... -
线程运行栈信息的获取
2011-03-24 17:23 1306线程运行栈信息的获取 ... -
java序列化——Serializable
2011-03-15 23:17 1067类通过实现 java.io.Serializable 接口 ... -
Java aio(异步网络IO)初探
2011-03-11 16:34 1559按照《Unix网络编程》的 ... -
JAVA NIO 简介
2011-03-11 13:38 11111. 基本 概念 IO 是主存和外部设备 ( 硬盘、终 ... -
[字节码系列]ObjectWeb ASM构建Method Monitor
2011-03-08 18:08 894在前面的篇章中,我们看到Java Instru ... -
深入了解Java ClassLoader、Bytecode 、ASM、cglib
2011-03-08 16:35 854一、Java ClassLoader 1,什 ...
相关推荐
在Java2中,网络安全主要通过一系列的机制和技术来实现,包括加密通信、身份验证、授权、安全套接层(SSL)、Java安全模型以及安全管理器等。 首先,加密通信是网络安全的基础,Java提供了强大的加密库,如Java ...
#### 安全管理器(Security Manager) 安全管理器是Java运行时环境中负责执行安全策略的核心组件。它提供了一种机制,用于控制代码的权限,如读写文件、网络连接或执行系统命令。开发者可以通过设置安全管理器来...
在Java中,安全性主要体现在三个方面:类加载器(Class Loaders)、访问控制(Access Control)和权限管理(Permissions)。下面我们将详细探讨这些关键知识点。 1. 类加载器: Java的类加载机制是其安全模型的...
Java代码管理器是一款基于Java语言开发的工具,用于高效地组织、存储和管理代码文件。在软件开发过程中,代码管理是至关重要的,它可以帮助开发者跟踪代码版本,协同工作,以及保持代码库的整洁和有序。Java作为一款...
Java安全框架Security(原名Spring Security)和Apache Shiro是两个广泛使用的权限管理和认证框架,它们为Java应用程序提供了强大的安全防护。这两个框架在现代企业级应用中扮演着至关重要的角色,确保用户数据的...
4. **安全管理器**:Java Security Manager是一个核心组件,用于实施运行时的安全策略。通过定制安全管理器,可以对应用程序的行为进行细致的控制,例如限制文件访问、网络通信等。 5. **权限与证书**:Java的权限...
在JDK 1.8版本中,安全包尤其关键,因为它包含了用于安全管理、加密、认证和授权等核心功能的类库。在Windows 64位环境下,这个安全包是专门为JDK 1.8设计的。 在Java中,安全模型是基于沙箱模型,这意味着Java应用...
安全经理Java安全管理器的定制实现,旨在为Web应用程序提供额外的保护和保证。 它允许使用更灵活的许可算法,以更好地满足J2EE环境的安全需求。背景默认的Java安全管理器实现被设计为用于不受信任的代码的通用沙箱。...
3. **安全管理器(Security Manager)** 安全管理器是Java安全体系中的核心组件,它负责执行权限检查。开发者可以通过设置安全管理器来增强应用程序的安全性,控制对系统资源的访问。 4. **权限(Permissions)** ...
在授权方面,SpringSecurity采用了访问控制表达式(Access Control Expressions,ACE)和访问决策管理器(Access Decision Manager,ADM)的概念。ACE允许开发者使用类似于"hasRole('ROLE_ADMIN')"这样的表达式来...
其次,Java提供了安全管理器(Security Manager)来实施这些策略。开发者可以自定义安全管理器,以便对应用程序的敏感操作进行控制,如读写文件、访问网络、执行系统命令等。默认情况下,Java不启用安全管理器,但在...
安全管理器(Security Manager)是Java平台的核心组件之一,它负责执行安全策略并提供各种安全服务。安全管理器的主要职责包括: - 实现和执行安全策略。 - 监控和控制代码的执行。 - 提供API来管理安全策略。 ###...
3. **安全管理器与沙箱模型**:安全管理器(Security Manager)是Java提供的用于控制程序运行时权限的组件。沙箱模型(Sandbox Model)则是Java中的一种安全策略,它限制了代码可以执行的操作范围,确保恶意代码无法...
这通常通过访问决策管理器(Access Decision Manager)和访问决策投票器(Access Decision Voter)来实现。 4. **会话管理**:处理会话相关的安全问题,如会话固定攻击(Session Fixation)和会话超时。 5. **加密...
此外,Java还提供了安全管理器(Security Manager)来控制应用程序的运行时行为,限制特定操作以提高安全性。例如,可以设定只允许特定的文件操作或网络连接。 在面试中,对于“构建安全的J2EE应用”这一主题,可能...
6. **权限管理与访问控制**:了解如何使用Java Security Manager限制代码的权限,以及使用访问控制列表(ACLs)来控制资源的访问,是防止权限滥用的重要手段。 7. **安全框架与库**:书中可能会推荐并解释一些常用...
SDM(Security Device Manager)是Cisco公司提供的全新图形化路由器管理工具。该工具利用WEB界面、Java技术和交互配置向导使得用户无需了解命令行接口(CLI)即可轻松地完成IOS路由器的状态监控、安全审计和功能配置。在...
通过设置安全管理器(Security Manager),开发者可以精细控制应用程序的权限。 再者,加密技术在保护数据隐私方面扮演着重要角色。RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年...
早期的Java安全模型主要基于权限、安全策略文件、安全管理器(Security Manager)来控制不同来源代码的权限。这种安全模型在防止恶意代码执行方面起到了积极作用,但也存在着灵活性不足、不易管理等缺点。随着Java...