原文作者:Akash Kava 译者:misthill
Tomcat是一个世界上广泛使用的支持JSP和servlets的Web服务器。它在JAVA运行时上能够很好地运行并支持Web应用部署。
运行Tomcat很简单;到Tomcat网站下载安装程序就可进行Tomcat的安装。没有人对Tomcat的危险性有透彻的了解。Tomcat Web应用程序的主要安全风险存在于以下方面:
Tomcat的JSP或JSP内调用的bean能够实施下列高风险性任务:
·运行一个Windows系统环境下的程序
·读取任意文件夹内任何文件的内容
·删除任意文件夹中的文件
·在任意文件夹内创建新文件
虽然Tomcat确实提供了很多的安全性,但是由于以下因素而显示了其漏洞:
1. 安装后,Tomcat作为一个系统服务运行
2. 如果没有将其作为系统服务运行,缺省地几乎所有Web服务器管理员都是将其以Administrator权限运行
这两种方式都允许Java运行时访问Windows系统下任意文件夹中的任何文件。缺省情况下,Java运行时根据运行它的用户授予安全权限。当Tomcat以系统管理员身份或作为系统服务运行时,Java运行时取得了系统用户或系统管理员所具有的全部权限。这样一来,Java运行时就取得了所有文件夹中所有文件的全部权限。并且Servlets(JSP在运行过程中要转换成Servlets)取得了同样的权限。所以Java代码可以调用Java SDK中的文件API列出文件夹中的全部文件,删除任何文件,最大的危险在于以系统权限运行一个程序。当任一Servlets含有如下代码:
Runtime rt = Runtime.getRuntime();
rt.exec("c:\\SomeDirectory\\SomeUnsafeProgram.exe")
这就是最大的危险,并且很多人都未认识到这点。
确保Tomcat安全的途径
首先,新建一个帐户
1. 用"ITOMCAT_计算机名"建立一个普通用户
2. 为其设置一个密码
3. 保证"密码永不过期"(Password Never Expires)被选中
修改Tomcat安装文件夹的访问权限
1. 选定环境参数CATALINA_HOME或TOMCAT_HOME指向的Tomcat安装文件夹。
2. 为"ITOMCAT_计算机名"用户赋予读、写、执行的访问权限。
3. 为"ITOMCAT_计算机名"用户赋予对WebApps文件夹的只读访问权限。
4. 如果某些Web应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。
当你需要Tomcat作为系统服务运行时,采取以下步骤:
1. 到"控制面板",选择"管理工具",然后选择"服务"。
2. 找到Tomcat:比如Apache Tomcat.exe等等,打开其"属性"。
3. 选择其"登录"(Log)标签。
4. 选择"以...登录"(Log ON Using)选项。
5. 键入新建的"ITOMCAT_计算机名"用户作为用户名。
6. 输入密码。
7. 重启机器。
当你需要在一个DOS窗口下运行Tomcat时,采取以下步骤:
1. 在"开始"按钮的"运行"框中键入CMD以打开一个DOS窗口。
2. 键入"RunAs /user:ITOMCAT_计算机名 CMD.exe"命令。
3. 在询问"ITOMCAT_计算机名"用户的密码时输入设置的密码。
4. 这将打开一个新的DOS窗口。
5. 在新开的DOS窗口中,转换到Tomcat的bin文件夹内。
6. 键入"catalina run"命令。
7. 关闭第一个DOS窗口。
以"ITOMCAT_计算机名"用户在新的DOS窗口内运行只授予该用户相应的权限;当你在这个新的DOS窗口中运行Tomcat时,它只取得了这个选定用户的权限。这样Tomcat就安全了。
Tomcat是一个世界上广泛使用的支持JSP和servlets的Web服务器。它在JAVA运行时上能够很好地运行并支持Web应用部署。
运行Tomcat很简单;到Tomcat网站下载安装程序就可进行Tomcat的安装。没有人对Tomcat的危险性有透彻的了解。Tomcat Web应用程序的主要安全风险存在于以下方面:
Tomcat的JSP或JSP内调用的bean能够实施下列高风险性任务:
·运行一个Windows系统环境下的程序
·读取任意文件夹内任何文件的内容
·删除任意文件夹中的文件
·在任意文件夹内创建新文件
虽然Tomcat确实提供了很多的安全性,但是由于以下因素而显示了其漏洞:
1. 安装后,Tomcat作为一个系统服务运行
2. 如果没有将其作为系统服务运行,缺省地几乎所有Web服务器管理员都是将其以Administrator权限运行
这两种方式都允许Java运行时访问Windows系统下任意文件夹中的任何文件。缺省情况下,Java运行时根据运行它的用户授予安全权限。当Tomcat以系统管理员身份或作为系统服务运行时,Java运行时取得了系统用户或系统管理员所具有的全部权限。这样一来,Java运行时就取得了所有文件夹中所有文件的全部权限。并且Servlets(JSP在运行过程中要转换成Servlets)取得了同样的权限。所以Java代码可以调用Java SDK中的文件API列出文件夹中的全部文件,删除任何文件,最大的危险在于以系统权限运行一个程序。当任一Servlets含有如下代码:
Runtime rt = Runtime.getRuntime();
rt.exec("c:\\SomeDirectory\\SomeUnsafeProgram.exe")
这就是最大的危险,并且很多人都未认识到这点。
确保Tomcat安全的途径
首先,新建一个帐户
1. 用"ITOMCAT_计算机名"建立一个普通用户
2. 为其设置一个密码
3. 保证"密码永不过期"(Password Never Expires)被选中
修改Tomcat安装文件夹的访问权限
1. 选定环境参数CATALINA_HOME或TOMCAT_HOME指向的Tomcat安装文件夹。
2. 为"ITOMCAT_计算机名"用户赋予读、写、执行的访问权限。
3. 为"ITOMCAT_计算机名"用户赋予对WebApps文件夹的只读访问权限。
4. 如果某些Web应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。
当你需要Tomcat作为系统服务运行时,采取以下步骤:
1. 到"控制面板",选择"管理工具",然后选择"服务"。
2. 找到Tomcat:比如Apache Tomcat.exe等等,打开其"属性"。
3. 选择其"登录"(Log)标签。
4. 选择"以...登录"(Log ON Using)选项。
5. 键入新建的"ITOMCAT_计算机名"用户作为用户名。
6. 输入密码。
7. 重启机器。
当你需要在一个DOS窗口下运行Tomcat时,采取以下步骤:
1. 在"开始"按钮的"运行"框中键入CMD以打开一个DOS窗口。
2. 键入"RunAs /user:ITOMCAT_计算机名 CMD.exe"命令。
3. 在询问"ITOMCAT_计算机名"用户的密码时输入设置的密码。
4. 这将打开一个新的DOS窗口。
5. 在新开的DOS窗口中,转换到Tomcat的bin文件夹内。
6. 键入"catalina run"命令。
7. 关闭第一个DOS窗口。
以"ITOMCAT_计算机名"用户在新的DOS窗口内运行只授予该用户相应的权限;当你在这个新的DOS窗口中运行Tomcat时,它只取得了这个选定用户的权限。这样Tomcat就安全了。