山西科技 SHANXI SCIENCE AND TECHNOL0GY 2011年第26卷第4期 ●信息技术 关于Tomcat的一些问题探讨 秦园园 (闽江学院软件学院,福建福州,350011) 摘要:目前采用Java或JSP开发的应用系统,大部分都利用Tomcat作为web应用服务器。Tomcat是 一个小型的轻量镅应用服务器雇中小型系统和并发访问用户不是很多的场合下被普遍使用,也 是开发和调试JSP#Lq-的首选应用服务器。就Tomcat应用服务器在安装配置、容易忽略的安全 问题以及字符乱码问题进行了探讨。 关键词:Tomcat;安装配置;安全问题;乱码 中图分类号:TP368.5 文献标识码:A 文章编号:1O04—6429(2011)4—0040—02 01 Tomcat的配置问题 中的: <servlet> 问题1:在win7系统下面JDK和Tomcat安装正确,外部服 务器打不开,访问总是被拒绝,而且内部服务器也打不开。用 MyEclipse连接Tomcat也报错,出现如下异常: java.io.Fi1eNotFoundExcepti0n:C:WrogramFileskApache Soft- <mlt-param> <param-name>listings<,J ̄aram-name> <param-value>true<, ̄aram-value> <,5nit—param> ware Foundation\Tomcat 6.0\contWomcat-users.xm1.new(拒绝访问o) 解决方法: (1)在win7系统下,Tomcat不能安装在系统盘。 </servlet> (2)在Tomcat5/6w.exe图标上右键一属性一兼容性标签栏 修改为: <servlet> 里一在等级中勾选以管理员身份运行该程序,再次启动,再 重新访问。 2容易忽略的Tomcat安全问题 <mlt—param> 问题1:server.xml默认有下面一行:<Server port:”8005” shutdown=”SHUTDOWN”>,这样允许任何人只要telnet到服务器 的8005端口,输入”SHUTDOWN”,然后回车,服务器立即就被关 <param-name>listings</param-name> <param-value>false</param-value> <Anit—p ̄am> 掉了。从安全的角度上考虑,需要把shutdown指令改成一个别人 不容易猜测的字符串。 解决方法:修改server.xml,将shutdown的值修改为不容易 被别人知道的值,例如如下所示: <Server port=”8006”shutdown=”zxfqyy”>,这样就只有在tel— </servlet> 问题3:如何处理好Tomcat管理台的安全。 Tomcat管理台的应用文件,默认在{Tomcat安装目录}\serv— er\webapps下,有admin和manager两个应用。其用户密码,在 {Tomcat安装目录} ̄onf/Tomcat—users.xml中定义。在{Tomcat安 net到8006,并且输入”zxfqyy”才能够关闭Tomcat.但是这个修改 不影响shutdown.bat的执行。运行shutdown.bat一样可以关闭服 务器。 装目录}\webapps下,admin.xml和manager.xml文件定义了能通 过访问/admin和/manager进人。默认情况下,完全能登录Tomcat 管理台,造成严重安全问题。 检测办法:用IE打开链接 问题2:缺省情况下,如果访问Tomcat下的一个web应用, 那么如果输入的是一个目录名,而且该目录下没有一个可用的 welcome文件,那么Tomcat会将该目录下的所有文件列出来,如 [url=http ip]:[Port]/admin]http IP]:[Port]/admin r1], 以用户名admin,密码为空登录,如果成功,说明存在问题。 解决办法:删除{Tomcat安装目录}\webappsadmin.xml和 manager.xml文件,或去掉用户密码,或删除应用文件。 问题4:在web应用中,如果未找到网页即出现404错误,会 显示服务器版本号,服务器设置也一目了然。 果想屏蔽这个缺省行为,那么可以修改conf/web.xml文件,将其 收稿日期:2011—04—19 作者简介:秦园园,女,1982年出生,2006年毕业于福州大学, 助教,350011,福建省福州市 ・40・ 秦园园:关于Tomcat的一些问题探讨 2011年第26卷第4期 解决方法:为了避免这种情况,自定义设置错误页面。例如 下设置: (1)将附件的index.htm文件拷贝至\webapps\ROOT目录 一个字符的长度从1 6个字节不等。英文字母的编码兼容 ISO8859~1。汉字使用三个字节表示。 在实际应用中,开发人员经常需要把字符编码在不同的字 内,删除或改名原来的index.jsp文件。 (2)用记事本打开\confiweb.xml文件,在文件的倒数第二行 (一行之前)加入以下内容: 符集之间互相转换,由于各字符集的大小和边界不一致,转换 时会出现以下几种情况: 对于中文网站,一般采用的字符集为GBK或GB2312。缺 404 Andex.htm 3 Tomcat的乱码问题 省情况下,Tomcat使用所驻留的操作系统的字符集编码解释客 户端提交的数据。一些版本的LINUX,比如REDHAT,操作系 统默认采用的字符集为ISO8859—1。在这样的环境下,Tomcat会 Tomcat采用java作为编程语言,由于Tomcat和Java的字 把客户端提交的数据解释成乱码。 符编码处理机制不同,很多系统开发人员开发Tomcat应用系统 解决办法:直观的解决办法是每次处理客户端提交上来的 的过程中处理中文字符时都会遇到乱码问题。可以说乱码是一 数据前,使用语句或者服务器端响应的时候,人工告诉Tomcat 种普通性的问题。 必须采用的字符集编码。设置charset或pageEncoding的值,该 乱码成因:Tomcat应用系统出现乱码的原因,大都与字符 语句放置在所有读取数据的语句之前: 集编码转换有关,因此要探究乱码成因,必须从字符集及其编码 (1)使用Servlet的doPost()方法接收表单的post方法传过 谈起。 来的数据时,可通过以下设置: 字符是文字和符号的总称。计算机内部只能识别二进制,计 request.setCharacterEncoding(”GB23 12”); 算机要处理各种字符,就需要将字符与二进制内码对应起来, response.setCharacterEncoding(”GB2312”); 这种对应关系就是字符编码。制定字符编码首先要确定字符集, (2)使用Servlet的doGet()方法接收表单的get方法传过来 字符集是指一组字符的集合,定义了可处理字符的边界。将字符 的数据时,可通过以下设置: 集内的字符排序,然后和二进制数字一一对应起来,这就完成 String name=new Stirng(request.getParameter(”name”).get一 了编码的过程。 Bytes(”ISO一8859—1”),”GB23 12”); 目前常用的字符集及其编码有以下几种: 以上的解决办法虽然直观,但程序员必须在每次读取客户 (1)ASCII:ASCII字符集由控制字符和图形字符组成。一个 端数据之前设置字符编码,容易出错和遗漏。针对这些缺点,可 ASCII字符编码占一个字节,其最高位用作奇偶校验位。 使用Tomcat的filter过滤器对所有的客户端数据进行统一设置。 (2)ISO/IEC 8859—1:国际标准化组织内ISO/IEC 8859的 GET提交数据乱码。少量的数据可以形如“testURLEncoding. 第一个8位字符集。它以ASCII为基础,在空置的0xA0—0xFF ispcity=福州”的URL参数方式提交给服务器。程序员以这种方式 的范围内,加人192个字母及符号,藉以供使用变音符号的拉 提交数据时经常遇到所提交的中文字符在服务器端变成了乱码。 丁字母语言使用。 原因探究:在客户端,附在URL后的参数以操作系统的字 (3)GB2312,GBK:GB2312是我国的国家标准编码,用来 符集对其进行编码,简体中文XP环境下,字符集为GBK。数据 表示简体汉字和英文字母,是一种混合字节编码,英文字母使 提交到服务器后,由于URL不属页面内容,JSP页面的编码设 用一个字节,编码和ISO8859—1一致,汉字使用两个字节,首 置对URL参数无效。默认情况下,Tomcat5使用字符集 字节最高位规定为1。后来的GBK编码能够用来同时表示繁体 ISO8859—1解释URL参数,造成两字节的中文字符被解释为 字和简体字,兼容GB2312。 两个单独的英文字符。 (4)UNICODE:UNICODE是一种把全球所有语言文字统一 解决办法:修改Tomcat配置目录下的selTer.xml,使用 编码的字符集,每个字符统一使用2个字节。这样理论上一共 URIEncoding指定URL参数的编码方式: 最多可以表示65 536个字符,基本满足各种语言的使用。<Connector p0n=”8080”…..URIEncoding=”GBK’ (5)UTF:UTF采用UNICODE字符集,是不定长编码,每 Approaches to Tomcat QIN Yuanyuan ABSTRACT:At present,most of the application systems developed based on Java or JSP use Tomcat as the Web application server.Tomcat,a small application server,is commonly applied in small and medium systems and under situations with not SO many concur- rent accesses and is the priority of developing and debugging JSP programs.The paper probes into the installation and configuration,safe ̄ issues easily ignored and garbage letters of Tomcat application servers. KEYWORDS:Tomcat;installation and configuration;safety issues;garbage letters ・41・