当前位置: 首页 > news >正文

商城类网站功能列表如何防止网站挂马

商城类网站功能列表,如何防止网站挂马,江西城乡建设培训中心网站,网站建设费如何核算SpringBoot 实现数据脱敏 前言Hutool 实现数据脱敏引入依赖脱敏工具类代码实现 使用注解的方式定义枚举自定义序列化类定义注解测试 前言 数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形#xff0c;实现敏感隐私数据的可靠保护。 数据脱敏常用规则有替换、重排、加密… SpringBoot 实现数据脱敏 前言Hutool 实现数据脱敏引入依赖脱敏工具类代码实现 使用注解的方式定义枚举自定义序列化类定义注解测试 前言 数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形实现敏感隐私数据的可靠保护。 数据脱敏常用规则有替换、重排、加密、截断、掩码 替换用其他字符或者符号替换原始数据中的字符或者符号例如将手机号码中间四位替换为星号。重排将原始数据中的字符或者符号重新排列例如将身份证号码中的数字重新排列。加密使用加密算法对原始数据进行加密例如使用AES算法对银行卡号进行加密。截断将原始数据中的一部分截取掉例如只保留姓名的首字母。掩码使用特定符号或者字符掩盖原始数据中的一部分例如使用星号掩盖信用卡号码中的一部分数字。 Hutool 实现数据脱敏 hutool ——一个 Java 基础工具类对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装组成各种 Util 工具类 官方文档简介 | Hutool 引入依赖 dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.8.16/version /dependency脱敏工具类 hutool 使用信息脱敏工具——DesensitizedUtil 实现脱敏操作 现阶段支持的脱敏数据类型包括 用户id中文姓名身份证号座机号手机号地址电子邮件密码中国大陆车牌包含普通车辆、新能源车辆银行卡 自定义隐藏可以使用StrUtil.hide方法完成 代码实现 public class HutoolDesensitized {public static void main(String[] args) {String phone 15888888888;System.out.println(DesensitizedUtil.mobilePhone(phone)); // 158****8888String idCard 490508200001010001;System.out.println(DesensitizedUtil.idCardNum(idCard,4,4)); // 4905**********0001String password dddd3343ssxx;System.out.println(DesensitizedUtil.password(password)); // ************ 对于密码则只保留位数String bankCard 8845600134008139446;System.out.println(DesensitizedUtil.bankCard(bankCard)); // 8845 **** **** *** 9446}}使用注解的方式 使用 SpringBoot 自带的 jackson 自定义序列化实现在 json 进行序列化返回时实现脱敏 定义枚举 public enum DesensitizationTypeEnum {// 自定义CUSTOM_RULE,// 用户idUSER_ID,// 中文名CHINESE_NAME,// 身份证号ID_CARD,// 座机号FIXED_PHONE,// 手机号MOBILE_PHONE,// 地址ADDRESS,// 电子邮件EMAIL,// 密码PASSWORD,// 车牌CAR_LICENSE,//银行卡BANK_CARD }自定义序列化类 继承JsonSerializer实现 ContextualSerializer 接口 AllArgsConstructor NoArgsConstructor public class DesensitizationSerialize extends JsonSerializerString implements ContextualSerializer {private DesensitizationTypeEnum type;private Integer startInclude;private Integer endExclude;Overridepublic void serialize(String str, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {switch (type) {// 自定义类型脱敏case CUSTOM_RULE:jsonGenerator.writeString(CharSequenceUtil.hide(str, startInclude, endExclude));break;// 用户名脱敏case USER_ID:jsonGenerator.writeString(String.valueOf(DesensitizedUtil.userId()));break;// 中文姓名脱敏case CHINESE_NAME:jsonGenerator.writeString(DesensitizedUtil.chineseName(String.valueOf(str)));break;// 身份证脱敏case ID_CARD:jsonGenerator.writeString(DesensitizedUtil.idCardNum(String.valueOf(str), 4, 4));break;// 固定电话脱敏case FIXED_PHONE:jsonGenerator.writeString(DesensitizedUtil.fixedPhone(String.valueOf(str)));break;// 手机号脱敏case MOBILE_PHONE:jsonGenerator.writeString(DesensitizedUtil.mobilePhone(String.valueOf(str)));break;// 地址脱敏case ADDRESS:jsonGenerator.writeString(DesensitizedUtil.address(String.valueOf(str), 8));break;// 邮箱脱敏case EMAIL:jsonGenerator.writeString(DesensitizedUtil.email(String.valueOf(str)));break;// 密码脱敏case PASSWORD:jsonGenerator.writeString(DesensitizedUtil.password(String.valueOf(str)));break;// 中国车牌脱敏case CAR_LICENSE:jsonGenerator.writeString(DesensitizedUtil.carLicense(String.valueOf(str)));break;// 银行卡脱敏case BANK_CARD:jsonGenerator.writeString(DesensitizedUtil.bankCard(String.valueOf(str)));break;default:}}Overridepublic JsonSerializer? createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {if (beanProperty ! null) {// 判断数据类型是否为String类型if (Objects.equals(beanProperty.getType().getRawClass(), String.class)) {// 获取定义的注解Desensitization desensitization beanProperty.getAnnotation(Desensitization.class);// 为nullif (desensitization null) {desensitization beanProperty.getContextAnnotation(Desensitization.class);}// 不为nullif (desensitization ! null) {// 创建定义的序列化类的实例并且返回入参为注解定义的type,开始位置结束位置。return new DesensitizationSerialize(desensitization.type(), desensitization.startInclude(),desensitization.endExclude());}}return serializerProvider.findValueSerializer(beanProperty.getType(), beanProperty);}return serializerProvider.findNullValueSerializer(null);} }定义注解 JsonSerialize 定义 json 序列化器 Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) JacksonAnnotationsInside JsonSerialize(using DesensitizationSerialize.class) public interface Desensitization {/*** 脱敏数据类型在 CUSTOM_RULE 的时候startInclude 和 endExclude 生效*/DesensitizationTypeEnum type() default DesensitizationTypeEnum.CUSTOM_RULE;/*** 脱敏开始位置包含*/int startInclude() default 0;/*** 脱敏结束位置不包含*/int endExclude() default 0; }测试 定义一个测试类 Data AllArgsConstructor NoArgsConstructor public class TestUser {Desensitization(type DesensitizationTypeEnum.MOBILE_PHONE)private String phone;Desensitization(type DesensitizationTypeEnum.EMAIL)private String email;Desensitization(type DesensitizationTypeEnum.CUSTOM_RULE,startInclude 3, endExclude 9)private String customEntity; }测试接口 RestController RequestMapping public class TestController {GetMapping(/test)public TestUser testDesensitization() {TestUser testUser new TestUser();testUser.setPhone(15888888888);testUser.setEmail(dadfd_333163.com);testUser.setCustomEntity(dfkdjf3434__495kdjf);return testUser;} }返回数据
http://wiki.neutronadmin.com/news/169941/

相关文章:

  • 百度调整导致网站排名下降wordpress连接微信支付
  • 青海省教育厅门户网站江苏环泰建设有限公司网站
  • 学院网站建设流程图免费logo在线制作头像
  • 网站及微站建设合同wordpress wiki插件
  • 贵阳网站开发网站建设 月嫂 模板
  • wordpress整合百度站内搜索巩义网站
  • 旅游网站哪家好又便宜网站建设与推cctv-10
  • 百度站内搜索 wordpress写手机版网站的静态页面
  • 地产设计网站域名访问网址
  • 网站开发投标书自助网站建设公司
  • 哪个网站代做装修效果图ui和平面设计的区别
  • 淘宝优惠劵网站怎么做wordpress通过id获取文章
  • 宝安网站设计排名手机网站建设与制作
  • 偷dede网站模板佛山外贸网站建设行情
  • 塘厦 网站建设 百度推广新建网页的方法有哪些
  • 如何办网站 论坛中国flash网站模板中心
  • 做网站要学什么东西wap网站开发流程
  • 企业网站托管服务公司网站建设中的功能
  • 成都网站制作计划网站建设公司如何做大
  • 百度统计网站速度诊断工具苏州知名网站建设公司
  • 怎样在网站上做专栏wordpress flat
  • 黄岛英文网站建设竞猜网站开发
  • 怎么样建网站卖东西wordpress所有版本
  • 自己怎么做彩票网站吗网站建设有哪些步骤
  • 浙江住房和城乡建设厅网站首页大型网站平台建设
  • 门户网站简称顺德网站建设服务平台
  • 专业做传奇网站解析wordpress 编辑器隔行
  • 欢迎访问中国建设银行官方网站洛阳网站建设汉狮报价
  • 辽宁城乡住房建设厅网站首页wordpress 文章内
  • 罗湖网站建设 信科网络安卓手机搭建网页