代码量:
- 移动端:30000+
- 后端:5000+
技术栈:
- 移动端:uni-app + Vue + JavaScript + Less + 微信小程序
- 后端:SpringBoot + SpringMVC + MyBatis + Shiro+ JWT + Quartz + ThreadPool + RabbitMQ + Docker
源码地址:
第一章 安装软件
数据库:MySQL + MongoDB + Redis
后端:IDEA
前端:微信小程序开发工具 + HBuilderX
虚拟机:VirtualBox,Linux系统采用CentOS
第二章 后端环境搭建基础
-
利用Maven创建Spring Boot项目
-
配置MySQL、MongoDB、Redis数据源
-
整合SSM框架
-
自定义异常类和封装结果集
-
集成Swagger,便于调用测试Web方法
-
配置后端验证功能
-
抵御跨站脚本XSS攻击
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
比如用户在发帖或注册时,文本框中输入
<script>alert(123)</script>,如果不经过转义,保存到数据库里后,将来渲染时会执行该代码。所以最有效的办法就是将用户输入的数据进行转义。
如果重写
HttpServletRequest类,需要覆盖的方法太多,非常耗时。只需继承
HttpServletRequestWrapper类,该方法为请求传入包装类,采用装饰器模式,可以随意修改其中的方法。package com.example.emos.wx.config.xss; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HtmlUtil; import cn.hutool.json.JSONUtil; import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import java.io.*; import java.nio.charset.Charset; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; /** * @author 袁梦达 2019012364 */ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { public XssHttpServletRequestWrapper(HttpServletRequest request) { super(request); } @Override public String getParameter(String name) { String value = super.getParameter(name); if(!StrUtil.hasEmpty(value)){ value = HtmlUtil.filter(value); } return value; } @Overr

本文介绍了一个结合微信小程序和Java后端的人脸签到系统开发过程,涵盖了从前端UI设计到后端逻辑实现的多个环节,重点讲解了XSS防护、Shiro认证、JWT令牌管理、人脸模型创建及识别等功能。

1934

被折叠的 条评论
为什么被折叠?



