攻击JavaWeb应用[1]-JavaEE 基础
字数 1573 2025-08-29 08:31:42
JavaWeb应用安全基础与Tomcat配置详解
JavaEE基础概念
JSP与Servlet
- JSP (Java Server Page): 本质上是简化的Servlet,用于简化动态Web页面开发
- Servlet: 服务器端Java应用程序,用于生成动态Web内容
- 关系: 每个JSP页面会被Tomcat编译成一个Servlet实例
JavaEE平台结构
- JavaEE是J2EE的新名称,包含庞大的技术栈
- JSP技术只是Java初级开发人员需要掌握的底层技术之一
Web请求处理流程
- 客户端发送HTTP请求到服务器
- 服务器接收并处理请求
- 服务器生成响应返回客户端
- 如果是JSP请求,Tomcat会将其编译为Servlet类
JSP与Servlet实践
JSP编译过程
- JSP文件会被Tomcat编译成.class文件
- 编译后文件存放路径:
Tomcat/work/Catalina/localhost/项目名/org/apache/jsp - 可使用JD-GUI等反编译工具查看编译后的Java类
Servlet创建
- 创建Servlet类继承HttpServlet
- 在web.xml中配置URL映射
<servlet> <servlet-name>DemoServlet</servlet-name> <servlet-class>com.example.DemoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DemoServlet</servlet-name> <url-pattern>/demo</url-pattern> </servlet-mapping>
数据库连接配置位置
常见配置位置
- Spring框架:
WEB-INF/applicationContext.xml - Hibernate框架:
WEB-INF/classes/hibernate.cfg.xml - 直接代码配置: 在Java源代码中硬编码
- Tomcat数据源:
conf/context.xmlconf/server.xml
- Resin数据源:
conf/resin.conf(3.x)或conf/resin.xml(4.x) - Properties文件: 如
.properties配置文件
Tomcat服务器详解
Tomcat基础
- Tomcat是Web应用服务器和Servlet容器
- 默认部署目录:
webapps/ - 网站根目录通常是
WebRoot WEB-INF目录默认不可通过Web访问
快速定位Tomcat安装路径
- 检查Apache配置(
httpd.conf)中的LoadModule jk_module - 查找
JkWorkersFile指向的Tomcat配置文件 - 在配置文件中查找
workers.tomcat_home - 检查
conf/server.xml获取详细配置
网站目录查找方法
- 检查
server.xml中的Host和Context配置 - 查看
webapps/ROOT目录(默认部署位置) - 检查
WEB-INF和classes目录下的配置文件 - 分析
web.xml中的配置信息
Apache与Resin配置
Apache快速定位网站目录
- 域名绑定配置位置:
conf/httpd.confconf/extra/httpd-vhosts.conf
- 典型虚拟主机配置:
<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /path/to/website ServerName example.com ErrorLog /path/to/error_log CustomLog /path/to/access_log common </VirtualHost>
Resin配置
- 配置文件位置:
- Resin 3.x:
conf/resin.xml - Resin 4.x:
conf/resin.conf
- Resin 3.x:
- 请求处理配置示例:
<LocationMatch (.*?).jsp> SetHandler caucho-request </LocationMatch>
负载均衡配置
Apache + Tomcat负载均衡
- 使用Apache作为前端,处理静态内容和PHP请求
- Tomcat处理Java Web应用请求
- 通过
mod_jk模块实现集成
Apache + Resin负载均衡
- 配置Apache加载Resin模块:
LoadModule caucho_module "path/to/mod_caucho.dll" - 添加Resin配置:
<IfModule mod_caucho.c> ResinConfigServer localhost 6800 CauchoStatus yes </IfModule> - 配置请求处理规则:
<LocationMatch (.*?).jsp> SetHandler caucho-request </LocationMatch>
安全注意事项
WEB-INF目录应配置为不可通过Web访问- Tomcat管理界面应设置强密码或禁用
- 数据库连接信息不应硬编码在源代码中
- 配置文件不应包含敏感信息的明文
- 定期检查服务器配置是否存在信息泄露风险