Java Web 代码审计浅析(框架基础,漏洞种类整理)

编译与反编译:

 

JAVA web:

  • 分层架构:为了方便清楚包与包之间的业务逻辑关系

    • 视图层(View 视图)
    • 控制层(Controller、Action 控制层)
    • 服务层(Service)
    • 业务逻辑层BO(business object)
    • 实体层(entity 实体对象、VO(value object) 值对象 、模型层(bean)。
    • 持久层(dao- Data Access Object 数据访问层、PO(persistant object) 持久对象)
  • 模块化开发:
    • Maven
    • Gradle
    • OSGi ( Open Service Gateway Initiative  可实现模块热部署)
  • Servlet: Servlet Java Web容器 上运行的 小程序 ,通常我们用 Servlet 来处理一些较为复杂的服务器端的业务逻辑。值得注意的是在 Servlet3.0 之后( Tomcat7+ )可以使用注解方式配置 Servlet 了。
    • Servlet3.0 之前的版本都需要在 web.xml 中配置, Servlet 两对标签 ,由 <servlet> <servlet-mapping> 组成, Spring MVC框架就是基于Servlet技术 实现的
    • 实现一个 Servlet 很简单,只需要继承 javax.servlet.http.HttpServlet 类并重写 doXXX 方法或者 service 方法
    • JSP、Servlet之间的关系
      • JSP、JSPX文件是可以直接被Java容器直接解析的动态脚本,jsp和其他脚本语言无异,不但可以用于页面数据展示,也可以用来处理后端业务逻辑。
### Java 代码审计工具推荐 #### 铲子 SAST 新一代的 Java 代码审计工具——铲子 SAST 支持主流的 Java 开发框架,采用了轻量、快捷的污点分析技术,并能支持无代码场景下的反编译扫描。此外,这款工具还提供了便捷的自定义扫描规则功能,使得开发者可以根据项目需求灵活调整审计策略[^4]。 ```java // 示例:配置自定义扫描规则 CustomRule customRule = new CustomRule(); customRule.setPattern("unsafeFunction\\(.*"); customRule.setMessage("Avoid using unsafe functions."); ``` #### 使用 JavaParser 进行静态分析 对于更细粒度的代码审查工作,可以考虑使用 `JavaParser` 库来解析并处理源码文件。通过创建 `CompilationUnit` 对象,能够深入理解程序结构并对特定部分实施针对性检测[^3]。 ```java import com.github.javaparser.StaticJavaParser; import com.github.javaparser.ast.CompilationUnit; String code = "public class HelloWorld { public static void main(String[] args) {} }"; CompilationUnit cu = StaticJavaParser.parse(code); System.out.println(cu.toString()); ``` 除了上述提到的具体解决方案外,在实际操作过程中还可以借助多种类型的辅助手段提高工作效率: - **代码编辑器插件**:许多现代 IDE 如 IntelliJ IDEA 或 Eclipse 提供内置的安全检查选项以及第三方扩展包。 - **单元测试框架**:JUnit 和 TestNG 等可以帮助验证应用程序逻辑正确性和安全性。 - **反汇编/反编译软件**:当面对闭源库时尤为有用;JD-GUI 是一个流行的选择之一。 综上所述,针对不同应用场景和个人偏好可以选择合适的组合方式来进行高效的 Java 代码质量保障活动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值