技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

甲骨文回应Java安全漏洞问题

前段时间,Java 被曝出多个安全漏洞,攻击者可以利用这些漏洞远程控制用户的电脑。 ... 全文

Java Java安全 Java漏洞

甲骨文将解决Java安全漏洞

近日甲骨文宣布将解决Java安全漏洞问题,包括添加集中策略管理与企业环境白名单功能。随着主要科技公司的高质量科技研发和软件违规使用,包括苹果和Facebook在内都存在Web插件的安全问题。拉马尼还指出,自2010年收购Java后加快了生产安全补丁的速度,他们还将继续加快修补符合甲骨文的其他Java产品。同时,甲骨文的主要源代码提供者为了过滤某些种类的漏洞开发了自动化分析工具。... 全文

Java安全漏洞 Java安全

Java数据安全麻烦不断 补丁发布未解燃眉之急

在Java 最新修订发布几天后,安全研究员 Adam Gowdiak 就发现了另一个 Java 的漏洞。在附带的披露文章中,Gowdiak 表示 Reflection API 缺陷会影响 Java SE 7 的全部版本,而且“可以用来在目标系统上达到完全绕过 Java 安全沙箱的目的”。该漏洞同时在插件/JDK 软件中存在,而服务器 JRE 也未能幸免。通过 Web 浏览器暴露的漏洞确实要求用户“在看到安全性警告窗口的时候,接受执行潜在地恶意 Java 应用的风险,”Gowdiak 写道。... 全文

Java安全 Java补丁

新的Java安全漏洞影响桌面和服务器

Adam Gowdiak 因为发现 Java 的漏洞而成名,他刚刚又 报告 一个新的漏洞 Security issue 61,Gowdiak 称该漏洞影响当前最新的 Java SE 7 版本,包括刚刚发布的 1.7.0_21-b11。... 全文

Java安全漏洞 Java7

Java安全管理器——SecurityManager

总的来说,Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性;二是Java语言开发的应用程序的安全性。由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我们考虑。其中第二个安全性是我们重点考虑的问题,一般我们可以通过安全管理器机制来完善安全性,安全管理器是安全的实施者,可对此类进行扩展,它提供了加在应用程序上的安全措施,通过配置安全策略文件达到对网络、本地文件和程序其它部分的访问限制的效果。Java从应用层给我们提供了安全管理机制——安全管理器,每个Java应用都可以拥有自己的安全管理器,它会在运行阶段检查需要保护的资源的访问权限及其它规定的操作权限,保护系统免受恶意操作攻击,以达到系统的安全策略。图3-1-5-1展示了安全管理器的工作机制,当运行Java程序时,安全管理器会根据policy文件所描述的策略给程序不同模块分配权限,假设把应用程序分成了三块,每块都有不同的权限,第一块有读取某文件的权限,第二块同时拥有读取某文件跟内存的权限,第三块有监听socket的权限。通过这个机制就能很好地控制程序各个部分的各种操作权限,从应用层上为我们提供了安全管理策略。图3-1-5-2为安全管理器对文件操作进行管理的工作过程,当应用程序要读取本地文件时,securitymanager就会在读取前进行拦截,判断是否有读取此文件的权限,如果有则顺利读取,否则将抛出访问异常。SecurityManager类中提供了很多检查权限的方法,例如checkPermission方法会根据安全策略文件描述的权限对操作进行判断是否有操作权限,而checkRead方法则用于判断对文件访问权限。一旦发现没有权限都会抛出安全异常。... 全文

Java安全管理器 SecurityManager policy 权限控制 安全

Oracle透露关于Java安全性的改进计划

  在 Nandini Ramani的博文中讨论了关于“Java的安全信誉”问题,间接的解决了一些Java安全研究人员批评和关注的问题,例如今年被爆出黑客利用Java浏览器插件漏洞侵入用户电脑事件(浏览器开发商Mozilla为此禁用了Java插件,美国国土安全部还建议卸载Java。甲骨文因为未能及时发布补丁而受到了批评)。... 全文

Oracle Java安全

甲骨文漏洞曝光 揭秘Java安全的真相

关于Java的安全事件屡屡发生,黑客通过发现IE浏览器中Java插件的漏洞,在有漏洞的用户计算机中安装恶意软件。近日甲骨文发布了Java的一个紧急更新。由于一个严重漏洞的曝光,美国政府数天前建议PC用户暂时禁用Java,以免遭到黑客攻击。但是通过Java,可以运行客户端桌面应用程序和向WEB浏览器拓展,这使得Java成为 了一枚定时炸弹,随时爆发安全隐患。下面我来来盘点一下Java 安全的真相:1、安全关注:客户端的Java... 全文

甲骨文 Java安全 黑客

几招防范Java漏洞

你的企业在使用Java平台吗?你可知道,Java平台很有可能会为病毒、木马大开方便之门。就如何防范最新的Java平台漏洞这一话题,本文为读者提供了一些参考方案。作为一种得到广泛应用的编程语言,针对Java平台的攻击呈现出逐渐抬头的迹象。很多安全研究人员就此提出了自己的方法,以便用户保护自己的计算机,以防范针对Java平台的攻击。安全研究人员希望在甲骨文没有提供官方补丁的前提下,用户们能够通过这些方法降低系统遭到攻击的风险。因噎废食不可取... 全文

Java漏洞 Java平台 安全漏洞

美安全专家建议PC用户暂时禁用Java

北京时间1月11日早间消息,美国多位信息安全专家本周建议PC用户暂时禁用Java。过去几天中,Java的一个安全漏洞被曝光,而一些黑客已利用这一漏洞来进行攻击。 AlienVault Labs经理杰姆·布拉斯科(Jaime Blasco)表示:“Java一团糟,并不安全。你需要关闭它。”目前全球已有数亿台PC安装了Java。利用这一编程语言,程序员可以编写出能在各种类型计算机上运行的程序。计算机用户通过模块,或称插件,来访问这些Java程序。这些程序基于IE或火狐等浏览器。... 全文

Java Java 7

美国国土安全部建议用户暂时禁用Java

本周四,安全研究人员表示,他们认为黑客已经发现了Java的一个漏洞,可以用来进行各种网络犯罪。美国国土安全部建议计算机用户暂时禁用Java软件,以避免遭受可能的攻击。... 全文

Java Java漏洞

安全专家说:现在到了该彻底重写Java的时候了

oracle-hq

如果说最近的Java暴露出来的安全缺陷能给我带来什么警示,那就是现在是到了Oracle公司重写这种语言的时候了。

这是杀毒软件Bitdefender... 全文

Java 语言安全

打不完的漏洞补丁 Java再曝新安全漏洞

一周前,Java曝出了两个远程攻击漏洞,甲骨文随后发布了Java 7 Update 11,对这两个漏洞进行了修复。但是,安全研究人员认为,Java仍然存在安全隐患,即使是安装了最新的Java 7 Updat 11,大家还是尽量在不需要的时候将之禁用。... 全文

Java Java漏洞

甲骨文为Java补丁更新重新编号

甲骨文称,考虑到零日漏洞补丁的增加,所以有必要重新编号。甲骨文改变了Java安全更新的号码排列。如一位专家所言:“好像Java更新还不够复杂一样。”上周Oracle 支持文档就发布了这次的改变通知。... 全文

Java安全 Java补丁更新 甲骨文

安全专家说:现在到了该彻底重写Java的时候了

如果说最近的 Java 暴露出来的安全缺陷能给我带来什么警示,那就是现在是到了 Oracle 公司重写这种语言的时候了。... 全文

Java Oracle Java 7

【Java基础】Java面试题目整理与讲解(一)

1. ArrayList,Vector, LinkedList 的存储性能和特性ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按 序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了 synchroni zed 方法(线程安全),通常性能上较 ArrayList 差,而 LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后 向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 2.Collection 和 Collections 的区别Collection 是集合类的上级接口,继承与他的接口主要有 Set 和 List. Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。3.HashMap 和 Hashtable 的区别HashMap 是 Hashtable 的轻量级实现(非线程安全的实现),他们都完成了 Map 接口,主要区别在于 HashMap 允许空(null)键值(key),由于非线程安全,效率上可能高于 Hashtable。 HashMap 允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。 HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和 containsKey。因为 contains 方法容易让人引起误解。 Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map interface 的一个实现。 最大的不同是,Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多个线程访问 Hashtable 时,不需要自己为它的 方法实现同步,而 HashMap 就必须为之提供外同步。Hashtable 和 HashMap 采用的 hash/rehash 算法都大概一样,所以性能不会有很大的差异。 4.sleep() 和 wait() 有什么区别sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时 后会自动恢复。调用 sleep 不会释放对象锁。 wait 是 Object 类的方法,对此对象调用 wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发 出 notify 方法(或 notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 5.Overload 和 Override 的区别Overloaded 的方法是否可以改变返回值的类型? 方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类 中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded 的 方法是可以改变返回值的类型。 6.同步和异步有何异同,在什么情况下分别使用他们?如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了, 那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程, 在很多情况下采用异步途径往往更有效率。 ... 全文

面试题 java 线程 线程安全 android

《Java并发编程实践》学习笔记之二:线程安全性(thread

《Java并发编程实践》学习笔记之二:线程安全性(thread-safe) 1、什么是线程安全性 1.1 不可用状态 调用一个函数(假设该函数是正确的)操作某对象常常会使该对象暂时陷入不可用的状态(通常称为不稳定状态),等到操作完全结束,该对象才会重新回到完全可用的状态。 1.2 线程安全性的核心问题 如果其他线程企图访问一个处于不可用状态的对象,该对象将不能正确响应从而产生无法预料的结果,如何避免这种情况发生是线程安全性的核心问题。 单线程的程序中是不存在这种问题的,除非有异常发生。 1.3 线程安全的定义 给线程安全下定义比较困难。存在很多种定义,如:“一个类在可以被多个线程安全调用时就是线程安全的”。 实际上,所有线程安全的定义都有某种程序的循环,因为它必须符合类的规格说明 ——这是对类的功能、其副作用、哪些状态是有效和无效的、不可变量、前置条件、后置条件等等的一种非正式的松散描述。 类要成为线程安全的,首先必须在单线程环境中有正确的行为。 正确性与线程安全性之间的关系非常类似于在描述 ACID(原子性、一致性、独立性和持久性)事务时使用的一致性与独立性之间的关系:从特定线程的角度看,由不同线程所执行的对象操作是先后(虽然顺序不定)而不是并行执行的。 我们都知道,Vector的所有方法都是同步的,然而,尽管如此,在多线程环境下有些时候不进行额外的同步仍然是不安全的。 考虑下面代码:    Vector v = new Vector();     // contains race conditions -- may require external synchronization     for (int i=0; i<v.size(); i++) {       doSomething(v.get(i));     } 如果另一个线程恰好在错误的时间里删除了一个元素,则get()会抛出一个ArrayIndexOutOfBoundsException。 这里发生的事情是:get(index)的规格说明里有一条前置条件要求index必须是非负的并且小于size()。但是,在多线程环境中,没有办法可以知道上一次查到的size()值是否仍然有效,因而不能确定i<size(),除非在上一次调用了size()后独占地锁定Vector。 更明确地说,这一问题是由 get() 的前置条件是以 size() 的结果来定义的这一事实所带来的。只要看到这种必须使用一种方法的结果作为另一种讲法的输入条件的样式,它就是一个状态依赖,就必须保证至少在调用这两种方法期间元素的状态没有改变。一般来说,做到这一点的唯一方法在调用第一个方法之前是独占性地锁定对象,一直到调用了后一种方法以后。 2、Java类的线程安全级别 Bloch给出的描述五类线程安全性的分类方法。 2.1 不可变 不可变的对象一定是线程安全的,并且永远也不需要额外的同步。因为一个不可变的对象只要构建正确,其外部可见状态永远也不会改变,永远也不会看到它处于不一致的状态。Java  类库中大多数基本数值类如 Integer、String和 BigInteger都是不可变的。 2.2 线程安全 由类的规格说明所规定的约束在对象被多个线程访问时仍然有效,不管运行时环境如何排列,线程都不需要任何额外的同步。这种线程安全性保证是很严格的——许多类,如Hashtable或者Vector都不能满足这种严格的定义。 2.3 有条件的线程安全 有条件的线程安全类对于单独的操作可以是线程安全的,但是某些操作序列可能需要外部同步。最常见的例子是遍历由Hashtable或者Vector或者返回的迭代器——由这些类返回的fail-fast迭代器假定在迭代器进行遍历的时候底层集合不会有变化。为了保证其他线程不会在遍历的时候改变集合,进行迭代的线程应该确保它是独占性地访问集合以实现遍历的完整性。通常,独占性的访问是由对锁的同步保证的——并且类的文档应该说明是哪个锁(通常是对象的内部监视器(intrinsic monitor))。 2.4 线程兼容 线程兼容类不是线程安全的,但是可以通过正确使用同步而在并发环境中安全地使用。这可能意味着用一个synchronized块包围每一个方法调用,或者创建一个包装器对象,其中每一个方法都是同步的(就像Collections.synchronizedList()一样)。也可能意味着用synchronized块包围某些操作序列。 常见类:ArrayList、HashMap、SimpleDateFormat、Connection和ResultSet等。 2.5 线程对立 线程对立类是那些不管是否调用了外部同步都不能在并发使用时安全地呈现的类。线程对立很少见,当类修改静态数据,而静态数据会影响在其他线程中执行的其他类的行为,这时通常会出现线程对立。 3、记录线程安全级别的好处 3.1 记录线程安全 通过将类记录为线程安全的(假设它确实是线程安全的),您就提供了两种有价值的服务:您告知类的维护者不要进行会影响其线程安全性的修改或者扩展,您还告知类的用户使用它时可以不使用外部同步。 3.2 记录有条件线程安全或线程兼容 通过将类记录为线程兼容或者有条件线程安全的,您就告知了用户这个类可以通过正确使用同步而安全地在多线程中使用。 3.3 线程对立 通过将类记录为线程对立的,您就告知用户即使使用了外部同步,他们也不能在多线程中安全地使用这个类。 知道了线程安全级别,使用时就可以很好的预防严重问题的出现。 注意:一个类的线程安全行为是其规格说明中的固有部分,应该成为其文档的一部分。因为还没有描述类的线程安全行为的声明式方式,所以必须用文字描述。 4、Servlet的线程安全性 Servlet/JSP 默认是以多线程模式执行的。Servlet 体系结构是建立在 Java 多线程机制之上的,它的生命周期是由 Web 容器负责的。当客户端第一次请求某个 Servlet 时,Servlet  容器将会根据 web.xml 配置文件实例化这个Servlet 类。当有新的客户端请求该 Servlet 时,一般不会再实例化该 Servlet 类,也就是有多个线程在使用这个实例。Servlet 容器会自动使用线程池等技术来支持系统的运行。这样,当两个或多个线程同时访问同一个 Servlet时,可能会发生多个线程同时访问同一资源的情况,数据可能会变得不一致。 4.1 无状态Servlet 当Servlet不包含域(成员变量),也没有引用其他类的域,使用的只是局部变量,而局部变量是保存在线程栈中的(各个线程有自己一份)。因而无状态Servlet是线程安全的。 4.2 有状态Servlet 书中举了一个例子,接收两个参数(request中的),计算和(result)。无状态时,result是局部变量,现在提升为实例变量。这样,多用户访问时,有可能就会出现自己的结果显示在别人浏览器中的情况。 解决这种线程不安全性,其中一个主要的方法就是取消 Servlet的实例变量,变成无状态的Servlet;另外一种方法是对共享数据进行同步操作。使用synchronized关键字能保证一次只有一个线程可以访问被保护的区段。 线程安全问题主要是由实例变量造成的,因此在 Servlet 中应避免使用实例变量。如果应用程序设计无法避免使用实例变量,那么使用同步来保护要使用的实例变量,但为保证系统的最佳性能,应该同步可用性最小的代码。 5、补充:Struts1.x与Struts2的线程安全性 5.1 Struts1.x的线程安全性 经过对struts1.x源码的研读发现:struts1.x获取action的方式是单例的,所有的action都被维护在一个hashMap里,当有请求到达时,先根据action的名称去hashMap里查找要请求的Action是否已经存在,如果存在,则直接返回hashMap里的action。如果不存在,则创建一个新的Action实例。这与Servelt是类似的。 因而,Action类中不应该声明带有状态的实例变量(与Servlet类似),而应该使用ActionForm,因为ActionForm是通过参数形式传入action的,不存在共享变量的问题,其实每个request产生的ActionForm实例也是不同的。 在Struts1.x与Spring集成时,配置Action的Bean时,scope可以不配,因为默认为“singleton”。经过Polaris测试发现,尽管Struts1.x内部对Action实例的产生是“单例模式”,然而,如果将其交由Spring管理,其实例数量却是由Spring的scope决定的。可以通过在Action中打印this来测试scope为singleton与prototype时的不同:singleton时,只产生一个实例;为prototype时,每个请求产生产生一个实例。集成的时候,建议Action的Bean不配scope或配成singleton,以利用Struts1自身提供的线程模式,以获得最大性能或资源利用率。 在此大概说一下Spring中singleton与prototype的不同: 当spring容器中管理bean属性为singleton时,spring容器会管理该bean整个生命周期;当bean的作用域为prototype时,每次调用到该bean都相当于重新new了一次,new出来的对象 如果没有引用,就会被JVM垃圾回收机制回收的。虽然都说spring是容器,的确没错,但是这人为了形象的描述它能带来的功能,其实它的管理不管理生命周期,其实就看它保存没保存这个对象的引用,虽然singleton是spring管理的,但它在spring容器结束的时候,spring也就是让这个引用指向一个空对象而已。 5.2 Struts2的线程安全性  Struts 2 的 Action 对象为每一个请求产生一个实例,因此,虽然在Action中定义了很多全局变量,也不存在线程安全问题。 Struts 2框架在处理每一个用户请求的时候,都建立一个单独的线程进行处理,值栈ValueStack也是伴随着局部线程而存在的。在该线程存在过程中,可以随意访问值栈,这就保证了值栈的安全性。 在Struts 2中,ActionContext(数据环境)是一个局部线程,这就意味着每个线程中的ActionContext内容都是唯一的。所以开发者不用担心Action的线程安全。 在Struts2与Spring集成时,配置Action的Bean时一定记得加上scope属性,值为:prototype,否则会有线程安全问题。 5.3 Struts1.x与Struts2的性能问题 Struts1.x的单例策略造成了一定的限制,开发时要注意线程安全性问题。 Struts2是线程安全的,据说,Servlet容器会给每一个请求产生许多丟弃的对象,并且不会导致性能和垃圾回收问题。Polaris没有测试,有兴趣的您可以试试。不过,Polaris认为Apache放弃Struts1的更新,转向Struts2,性能方面应该不会比Struts1差。 想了解更多、更详细的Struts1.x与Struts2的区别,请访问:http://tech.ddvip.com/2008-12/122852732297849.html本文出自 “徐新华polaris” 博客,请务必保留此出处http://polaris.blog.51cto.com/1146394/382161... 全文

Java并发编程实践 笔记 休闲 线程安全 职场

Oracle 发布大量安全更新,涉及 Java 等

Oracle 刚刚发布 大量安全更新 涉及多个产品的 104 个安全漏洞。其中有 37 个漏洞是关于 Java SE,Oracle 的公告显示 35 个可在没有认证的情况下通过远程利用。其中 4 个 bug 的 CVSS 基础分值达 10,这是一个 bug 的最危险级别。... 全文

Oracle Java

美国土安全部建议非必要时禁用Java

之前美国国土安全部称Java带来了风险,并建议用户关闭软件。尽管Oracle发布了一个Java漏洞的修复补丁,但该部门在当天下午更新的安全注意事项(security note)里仍表示,Java 7的Update 11实际上可能没有限制特权代码的访问。Java 7的这个0-day漏洞是在Update 10中被发现的,它使得未签名的Applet和Web Start应用未经许可就能运行。... 全文

Java Update

Java 6已修正新发现0day安全漏洞

让人迷惑的是,Java 6更新补丁由苹果发布,不过Java 7更新补丁由Oracle直接发布。... 全文

Java 6 0day

Java、fileless恶意软件威胁桌面安全

工作原理:用户访问一个受侵的网站,不小心下载了最新类型的恶意软件。如果你的杀毒软件运行良好的话,就会阻止下载,至少能够检测到并隔离硬盘上的入侵文件。但是如果硬盘上没有文件监测呢?如果恶意软件只入侵内存,运行在受信任的进程中呢?... 全文

fileless僵尸程序 恶意软件 Java漏洞

1 2 3