大一实训Java Web项目总结

大一实训J项目合农网 项目总结 & 个人总结

#HeNong
@BUG生产车间

Github仓库地址 https://github.com/XFishalways/HeNongWang

已部署到个人云服务器上 http://123.56.242.225:8080/HeNong_war/

改进版农村电商平台

基于 SpringMVC 框架 前端设计采用 layui
共4个客户端: 农户端 卖家端 买家端(用户端) 管理员端

工作流程:

  • 农户注册登录 => 修改完善个人信息 修改所属卖家 => 注册商品 & 向卖家提交审核
  • 卖家注册登录 => 修改完善个人信息 => 注册新地址 & 查看地址 => 查询农户 & 审核农户商品 => 活动查询(暂未实现) => 展示商品 & 展示订单
  • 买家注册登录 => 修改完善个人信息 => 注册新地址 & 查看地址 => 查看当前购物车 & 查看当前订单 => 活动查询(暂未实现) => 返回首页购买商品 => 点击查看商品详情 => 输入购买数量 => 选择加入购物车或加入订单立即购买 => 回个人中心查看购物车 & 订单
  • 管理员无法注册 直接访问 /admin 登录 => 活动审核 & 活动修改 => 商品审核 & 商品修改

Web 安全

使用 interceptor 在进入 controller 接口前拦截危险操作

  • SqlInjectInterceptor 拦截 and or select order delete drop 等 sql 注入的关键词 & 拦截 eval < > script 等 xss 关键词
  • LoginInterceptor 通过每次提交表单传入隐藏的随机值并存入session 每次登录进行比对 拦截表单的重复提交 阻止CSRF
  • UserInterceptor 通过判断 seesion 内的值 组织访客直接访问 /farmer /business /buyer 各端后台 若有非法访问自动重定向到 login.html

个人感想

2天共3小时睡眠后终于完工 基本从零开始 至少框架完全是新接触 但这次也是真心感受到了框架的优点 正因为选择了 Spring 才能这让么大的项目结构如此清晰 entity dao service controller interceptor 各层各司其职 代码的功能也区分开 一层套一层 很舒服也很好写

最后来看也有一些问题吧

  • 交流上的问题 因为在前期交流较少 导致数据表上的值的理解和基本流程的偏差 造成后期修改量极大
  • 代码能力稍显薄弱 有时候容易突然没思路 而且速度较慢
  • 虽然接触过ctf 但最开始对于web安全的防御不太了解 不太会过滤器 转义这些 研究安全问题花费了很多时间 但这次能够让我以维护一个自己开发的web项目为目标去做web安全,而不止于对靶场的攻击,以一种防御的角度来处理安全问题 个人觉得很有收获
  • 最后反思了一下 应该借助像 postman 这样的工具来测试api 而不是前后端做完花大量时间一起对

发表评论