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

定制型网站制作win7本机做网站

定制型网站制作,win7本机做网站,做网站游戏推广赚钱,wordpress标签的调用代码在Spring Boot中#xff0c;我们可以使用注解的方式来进行XSS防御。注解是一种轻量级的防御手段#xff0c;它可以在方法或字段级别对输入进行校验#xff0c;从而防止XSS攻击。 引入相关依赖 maven依赖#xff1a; !--JSR-303/JSR-380用于验证的注解 -- de…在Spring Boot中我们可以使用注解的方式来进行XSS防御。注解是一种轻量级的防御手段它可以在方法或字段级别对输入进行校验从而防止XSS攻击。 引入相关依赖 maven依赖 !--JSR-303/JSR-380用于验证的注解 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactIdversion2.6.7/version /dependency如果是使用grade引入依赖 implementation org.springframework.boot:spring-boot-starter-validation:2.6.7定义XSS注解进行参数校验 我们可以自定义一个XSS注解用于标记那些需要校验的参数。这里是一个简单的XSS注解定义 package com.morris.spring.boot.module.xss;import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(value {ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER}) Retention(RetentionPolicy.RUNTIME) Constraint(validatedBy XssValidator.class) public interface Xss {String message() default 非法输入, 检测到潜在的XSS;Class?[] groups() default {};Class? extends Payload[] payload() default {}; }实现自定义注解处理器 接下来我们需要实现XSSValidator类该类将负责检查输入是否包含潜在的XSS攻击脚本 package com.morris.spring.boot.module.xss;import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.safety.Whitelist;import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext;/*** xss注解校验*/ public class XssValidator implements ConstraintValidatorXss, String {/*** 使用jsoup自带的relaxed白名单*/private static final Whitelist WHITE_LIST Whitelist.relaxed();/*** 定义输出设置关闭prettyPrintprettyPrintfalse目的是避免在清理过程中对代码进行格式化* 从而保持输入和输出内容的一致性。*/private static final Document.OutputSettings OUTPUT_SETTINGS new Document.OutputSettings().prettyPrint(false);/*** 验证输入值是否有效即是否包含潜在的XSS攻击脚本。* * param value 输入值需要进行XSS攻击脚本清理。* param context 上下文对象提供关于验证环境的信息如验证失败时的错误消息定制。* return 如果清理后的值与原始值相同则返回true表示输入值有效否则返回false表示输入值无效。*/Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {// 这里先对value进行一次解析对其中的单个、字符进行编码String oldBody Jsoup.parse(value).body().html();// 使用Jsoup库对输入值进行清理以移除潜在的XSS攻击脚本。// 使用预定义的白名单和输出设置来确保只保留安全的HTML元素和属性。String newBody Jsoup.clean(value, , WHITE_LIST, OUTPUT_SETTINGS);// 比较清理后的值与解析后的值是否相同不相同说明过滤了xss脚本// 这里不使用value与newBody比因为jsoup会对value中的单个、字符进行编码如果value中还有单个的value与newBody也会不一样return oldBody.equals(newBody);}}使用Xss注解防御post请求 如果是post请求需要在方法参数前面加上Valid或者Validated注解然后在实体类的属性上面加上Xss注解。 package com.morris.spring.boot.module.xss;import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.validation.Valid;/*** Xss局部防御post请求*/ RestController RequestMapping(/xss/local) public class XssLocalPostController {/*** 使用注解拦截POST请求中的xss在实体类需要拦截xss的属性上面加上Xss或者Validated注解** param userLocalLoginPojo 实体类* return 实体类*/PostMapping(/test)public UserLocalLoginPojo test(Valid RequestBody UserLocalLoginPojo userLocalLoginPojo) {return userLocalLoginPojo;}}在要进行XSS防御的属性上添加Xss注解 package com.morris.spring.boot.module.xss;import lombok.Data;Data public class UserLocalLoginPojo {Xssprivate String userAccount; }测试urlhttp://localhost:8888/xss/local/test 测试post请求 {userAccount: iframe οnlοadalert(0)demoData/iframe }测试结果 {message: userAccount:非法输入, 检测到潜在的XSS,code: 400,result: null }使用Xss注解防御get请求 如果是get请求需要在方法参数前面加上Xss注解然后在类上加上Validated注解。 package com.morris.spring.boot.module.xss;import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*;/*** Xss局部防御get请求*/ RestController RequestMapping(/xss/local) Validated public class XssLocalGetController {/*** 使用注解拦截get请求中的xss在方法参数前面加上Xss注意类上面要加上Validated注解** param userAccount 请求参数* return 请求参数*/GetMapping(/test)public String test(Xss String userAccount) {return userAccount;}}测试urlhttp://localhost:8888/xss/local/test?userAccountiframedemoData/iframe 测试结果 {message: test.userAccount: 非法输入, 检测到潜在的XSS,code: 400,result: null }
http://www.dnsts.com.cn/news/182566.html

相关文章:

  • 如何免费推广一个网站wordpress多域名模板
  • 制作网站的顺序是wordpress别人主题插件
  • 商务网站平台建设预算网站建设电销话术范文
  • 访问网站 403.14错误增加网站收录
  • 优化提升青岛seo网站建设公司
  • 公司做网站流程投资公司注册资金需要多少
  • 快站建站怎么收费的莱芜区招聘信息
  • 东莞东坑网站建设域名注册网站排行
  • 网站开发主流技术线路介绍网站项目建设措施
  • 邵东网站什么是网站外部链接
  • 网站建设芜湖江苏省住房和城乡建设厅 官方网站
  • 学校网站建设报价单设计logo商标
  • 原生h5网站怎么做网站建设后台是怎么制作的
  • 宿迁哪家做网站好百度网页网址
  • 江西网站建设费用南京网站建设公司有哪些
  • 美发企业网站建设价格企业产品微网站收费吗
  • 福建省城乡建设厅网站网页打不开的一个解决方法
  • 国内做网站建设知名的公司软件定制开发订单
  • 网站优化什么创意设计理念
  • 免费搭建网站 域名省级建筑信息平台
  • 房地产网站开发公司打开网站 显示建设中
  • 网站空间ftp连接失败亳州蒙城网站建设
  • 安徽建设厅网站怎么打不开安阳县地图全图
  • 途牛企业网站建设网站的管理
  • 下沙网站优化文汇网站建设
  • 网站移动端是什么问题吗做阿里巴巴网站装修要多久
  • 帝国cms网站名称北京朝阳区一小区现疑似病例
  • seo工具网站专业的河南网站建设公司
  • 北京网站备案核验单深圳竞价网站
  • 汽配做的最好的网站最好看免费视频