攻击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请求处理流程

  1. 客户端发送HTTP请求到服务器
  2. 服务器接收并处理请求
  3. 服务器生成响应返回客户端
  4. 如果是JSP请求,Tomcat会将其编译为Servlet类

JSP与Servlet实践

JSP编译过程

  • JSP文件会被Tomcat编译成.class文件
  • 编译后文件存放路径: Tomcat/work/Catalina/localhost/项目名/org/apache/jsp
  • 可使用JD-GUI等反编译工具查看编译后的Java类

Servlet创建

  1. 创建Servlet类继承HttpServlet
  2. 在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>
    

数据库连接配置位置

常见配置位置

  1. Spring框架: WEB-INF/applicationContext.xml
  2. Hibernate框架: WEB-INF/classes/hibernate.cfg.xml
  3. 直接代码配置: 在Java源代码中硬编码
  4. Tomcat数据源:
    • conf/context.xml
    • conf/server.xml
  5. Resin数据源: conf/resin.conf(3.x)或conf/resin.xml(4.x)
  6. Properties文件: 如.properties配置文件

Tomcat服务器详解

Tomcat基础

  • Tomcat是Web应用服务器和Servlet容器
  • 默认部署目录: webapps/
  • 网站根目录通常是WebRoot
  • WEB-INF目录默认不可通过Web访问

快速定位Tomcat安装路径

  1. 检查Apache配置(httpd.conf)中的LoadModule jk_module
  2. 查找JkWorkersFile指向的Tomcat配置文件
  3. 在配置文件中查找workers.tomcat_home
  4. 检查conf/server.xml获取详细配置

网站目录查找方法

  1. 检查server.xml中的HostContext配置
  2. 查看webapps/ROOT目录(默认部署位置)
  3. 检查WEB-INFclasses目录下的配置文件
  4. 分析web.xml中的配置信息

Apache与Resin配置

Apache快速定位网站目录

  • 域名绑定配置位置:
    • conf/httpd.conf
    • conf/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
  • 请求处理配置示例:
    <LocationMatch (.*?).jsp>
        SetHandler caucho-request
    </LocationMatch>
    

负载均衡配置

Apache + Tomcat负载均衡

  • 使用Apache作为前端,处理静态内容和PHP请求
  • Tomcat处理Java Web应用请求
  • 通过mod_jk模块实现集成

Apache + Resin负载均衡

  1. 配置Apache加载Resin模块:
    LoadModule caucho_module "path/to/mod_caucho.dll"
    
  2. 添加Resin配置:
    <IfModule mod_caucho.c>
        ResinConfigServer localhost 6800
        CauchoStatus yes
    </IfModule>
    
  3. 配置请求处理规则:
    <LocationMatch (.*?).jsp>
        SetHandler caucho-request
    </LocationMatch>
    

安全注意事项

  1. WEB-INF目录应配置为不可通过Web访问
  2. Tomcat管理界面应设置强密码或禁用
  3. 数据库连接信息不应硬编码在源代码中
  4. 配置文件不应包含敏感信息的明文
  5. 定期检查服务器配置是否存在信息泄露风险
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映射 数据库连接配置位置 常见配置位置 Spring框架 : WEB-INF/applicationContext.xml Hibernate框架 : WEB-INF/classes/hibernate.cfg.xml 直接代码配置 : 在Java源代码中硬编码 Tomcat数据源 : conf/context.xml conf/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.conf conf/extra/httpd-vhosts.conf 典型虚拟主机配置: Resin配置 配置文件位置: Resin 3.x: conf/resin.xml Resin 4.x: conf/resin.conf 请求处理配置示例: 负载均衡配置 Apache + Tomcat负载均衡 使用Apache作为前端,处理静态内容和PHP请求 Tomcat处理Java Web应用请求 通过 mod_jk 模块实现集成 Apache + Resin负载均衡 配置Apache加载Resin模块: 添加Resin配置: 配置请求处理规则: 安全注意事项 WEB-INF 目录应配置为不可通过Web访问 Tomcat管理界面应设置强密码或禁用 数据库连接信息不应硬编码在源代码中 配置文件不应包含敏感信息的明文 定期检查服务器配置是否存在信息泄露风险