本系列文章使用SpringBoot+Mybaits的小型商城作为本次代码审计的目标,项目地址:
https://github.com/newbee-ltd/newbee-mall
SpringBoot+Mybatis这套架构使用较为广泛,相比于SpringMVC,SpringBoot简化了很多配置,更易上手使用。并且该项目属于小型系统,程序逻辑较为简单,作者编码规范,搭建也非常方便,只需要配置数据库(MySQL)和商品图片资源,SpringBoot自带中间件,无需额外配置中间件,方便调试,代码中没看懂的逻辑,下断点上手调试非常便捷,非常适合新手入门代码审计。
https://github.com/newbee-ltd/newbee-mall
下载代码,在IntelliJ IDEA中导入
pom.xml
,IDEA会以maven项目打开并自动下载依赖包。
Spring属性文件路径:
/src/main/resources/application.properties
,其中可修改端口和mysql数据库地址
1 2 3
|
server.port=8089 ... spring.datasource.url=jdbc:mysql://localhost:3306/newbee_mall_db?...
|
配置文件路径:
/src/main/java/ltd/newbee/mall/config/NeeBeeMallWebMvcConfigurer.java
,其中配置了图片路径
1 2 3 4
|
public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/upload/**").addResourceLocations("file:" + Constants.FILE_UPLOAD_DIC); registry.addResourceHandler("/goods-img/**").addResourceLocations("file:" + Constants.FILE_UPLOAD_DIC); }
|
此时是没有测试数据的,需要将
/src/main/resources/upload.zip
压缩包中的测试商品数据解压出来,放到任意的目录中。此处作为学习测试使用,可以直接解压在当前路径下,正式系统中一定要存放在非项目路径下。
在文件
src/main/java/ltd/newbee/mall/common/Constants.java
中,变量
FILE_UPLOAD_DIC
为当前上传图片路径,将其更改为我们解压
upload.zip
的
绝对
路径
1 2 3 4 5
|
public class Constants { public final static String FILE_UPLOAD_DIC = "/some_path/src/main/resources/upload/"; }
|