当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 概述和溢出 一、概述 编写安全的Internet应用并不是一件轻而易举的事情:只要看看各个专业公告板就可以找到连续不断的安全漏洞报告。
 

 

    摘要: 以前使用jsw发布工程的时候,用的都是简单的例子,比如一个界面的什么,但是前两天用jws发布一个工程,该工程引入不少第三方jar包的时候,像以前那种简单的配置就不行了。其实解决方法很简单,用eclipse打包先,eclipse不会把你工程中配置的jar包放到生成的工程包中,当然我们也不需要这个,否则那还麻烦了呢。包打好之后,把工程用到的第三方jar包放到和工程包同一目录中即可,再修改jnlp文件......
 ·eclipse birt    »显示摘要«
    摘要: magicgod 15:07:30birt我试过了 magicgod 15:07:41还不错的,生成pdf会乱码 magicgod 15:08:12有前途的,有些小bug buaawhl 15:08:28excel 也有xml格式。 buaawhl 15:09:03我感觉,大部分处理二进制pdf/excel 的工具,不久就基本失去了作用。 magicgod 15:09:23office升级还没这......


Java服务器端编程安全必读

概述与溢出

  编写安全的internet应用并不是一件轻而易举的事情:只要看看各个专业公告板就可以找到连续不断的安全漏洞报告.你如何保证自己的internet应用不象其他人的应用那样满是漏洞?你如何保证自己的名字不会出现在令人难堪的重大安全事故报道中? 【程序编程相关:Java数据库接口JDBC基础教程之驱动

  一.概述 【推荐阅读:Web应用中的中文问题

  c程序员对安全漏洞应该已经很熟悉,但象openbsd之类的工程提供了处理此类问题的安全系统.java语言处理这类问题的经验要比c少20年,但另一方面,java作为一种客户端编程语言诞生,客户端对安全的要求比服务器端苛刻得多.它意味着java的发展有着一个稳固的安全性基础. 【扩展信息:Java代码优化--尽可能地使用stac

  如果你使用java servlet.javaserver pages(jsp)或者ejb,许多难以解决的问题都已经事先解决.当然,漏洞仍有可能出现.下面我们就来看看这些漏洞是什么,以及为什么java程序员不必担心部分c与perl程序员必须面对的问题.

  java原先的定位目标是浏览器.然而,浏览器本身所带的java虚拟机虽然很不错,但却并不完美.sun的«chronology of security-related bugs and issues»总结了运行时环境的漏洞发现历史.我们知道,当java用作服务器端编程语言时,这些漏洞不可能被用作攻击手段.但即使java作为客户端编程语言,重大安全问题的数量也从1996年的6个(其中3个是相当严重的问题)降低到2000年的1个.不过,这种安全性的相对提高并不意味着java作为服务器端编程语言已经绝对安全,它只意味着攻击者能够使用的攻击手段越来越受到限制.那么,究竟有哪些地方容易受到攻击,其他编程语言又是如何面对类似问题的呢?

  二.缓存溢出

  在c程序中,缓存溢出是最常见的安全隐患.缓存溢出在用户输入超过已分配内存空间(专供用户输入使用)时出现.缓存溢出可能成为导致应用被覆盖的关键因素.c程序很容易出现缓存溢出,但java程序几乎不可能出现缓存溢出.

  从输入流读取输入数据的c代码通常如下所示:

  char buffer[1000];

  int len = read(buffer);

  

  由于缓存的大小在读入数据之前确定,系统要检查为输入保留的缓存是否足够是很困难的.缓存溢出使得用户能够覆盖程序数据结构的关键部分,从而带来了安全上的隐患.有经验的攻击者能够利用这一点直接把代码与数据插入到正在运行的程序.

  在java中,我们一般用字符串而不是字符数组保存用户输入.与前面c代码等价的java代码如下所示:

  string buffer = in.readline();

  在这里,“缓存”的大小总是与输入内容的大小完全一致.由于java字符串在创建之后不能改变,缓存溢出也就不可能出现.退一步说,即使用字符数组替代字符串作为缓存,java也不象c那样容易产生可被攻击者利用的安全漏洞.例如,下面的java代码将产生溢出:

  char[] bad = new char[6];

  bad[7] = 50;这段代码总是抛出一个java.lang.arrayoutofboundsexception异常,而该异常可以由程序自行捕获:


...   下一页
 ·eclipse集成 lomboz和jboss开发j2ee    »显示摘要«
    摘要: eclipse是一个非常优秀的集成开发环境,这个在ibm支持下的开放源码项目经过一段时期的发展完善,已经为广大java开发者所熟悉。eclipse的出现,为java开发者提供了免费使用强大的java ide的机会,通过集成大量的plugin,eclipse的功能可以不断扩展,以支持各种不同的应用。lomboz是一个免费的eclipse plugin,它将很多java应用服务器、j2ee组件和we......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE