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

厦门市规划建设局网站深圳网站设计设计

厦门市规划建设局网站,深圳网站设计设计,手机网站制作教程,wordpress投稿者权限文章目录 概述危害修复建议与实施方案解决方案 1#xff1a;手动绑定数据解决方案 2#xff1a;使用 DTO 进行数据过滤解决方案 3#xff1a;启用字段白名单解决方案 4#xff1a;验证输入数据模式 验证修复有效性小结 概述 批量分配漏洞#xff08;Mass Assignment#… 文章目录 概述危害修复建议与实施方案解决方案 1手动绑定数据解决方案 2使用 DTO 进行数据过滤解决方案 3启用字段白名单解决方案 4验证输入数据模式 验证修复有效性小结 概述 批量分配漏洞Mass Assignment通常发生在后端代码使用自动数据绑定框架如 Java 的 SpringMVC 或其他 ORM 工具时没有对用户输入数据进行严格验证和过滤。 例如前端用户可以通过提交额外的参数如权限字段、敏感标志字段绕过后端验证将这些敏感字段意外绑定到对象中并持久化。 危害 特权升级恶意用户可以通过添加权限字段获取更高的系统权限。数据篡改恶意篡改业务关键字段或数据例如篡改订单状态、支付金额。绕过安全机制可以破坏访问控制策略导致未经授权的数据泄漏或修改。 修复建议与实施方案 解决方案 1手动绑定数据 避免直接使用框架的自动绑定功能改为手动提取输入参数并明确赋值。例如 RestController public class RuleController {PostMapping(/ruleCompletion)public ResponseEntity? ruleCompletion(RequestBody MapString, Object payload) {Rule rule new Rule();rule.setName((String) payload.get(name));rule.setDescription((String) payload.get(description));// 仅绑定允许的字段return ResponseEntity.ok(service.saveRule(rule));} }解决方案 2使用 DTO 进行数据过滤 通过定义 DTO数据传输对象仅包含允许的字段将用户输入限制为安全范围内的数据。 Data public class RuleDTO {private String name;private String description; }RestController public class RuleController {PostMapping(/ruleCompletion)public ResponseEntity? ruleCompletion(RequestBody RuleDTO ruleDTO) {Rule rule new Rule();BeanUtils.copyProperties(ruleDTO, rule); // 将 DTO 数据复制到实体中return ResponseEntity.ok(service.saveRule(rule));} }解决方案 3启用字段白名单 对于常见 ORM如 Hibernate绑定可以启用字段白名单指定哪些字段可以被更新 Entity public class Rule {Column(updatable false)private Long id; // 禁止外部更新private String name;Column(updatable false)private String sensitiveField; // 禁止外部更新的敏感字段 }解决方案 4验证输入数据模式 结合 JSON Schema 或其他验证框架严格定义输入数据结构。 Component public class RuleValidator {public void validate(RuleDTO ruleDTO) {if (StringUtils.isEmpty(ruleDTO.getName())) {throw new IllegalArgumentException(Name cannot be empty);}// 其他自定义验证规则} }验证修复有效性 确保修复后以下输入无法篡改敏感数据 测试 1尝试注入非预期字段如 admintrue。测试 2尝试修改受保护字段如 id。测试 3验证业务逻辑中绑定的字段是否均在允许范围内。 Test public void testMassAssignmentPrevention() {MockMvc mockMvc MockMvcBuilders.standaloneSetup(new RuleController()).build();String maliciousPayload {\name\:\test\,\admin\:\true\};mockMvc.perform(post(/ruleCompletion).contentType(MediaType.APPLICATION_JSON).content(maliciousPayload)).andExpect(status().isBadRequest()); }小结 四种修复方法包括手动绑定、DTO 使用、字段白名单和数据模式验证。
http://www.hkea.cn/news/14545071/

相关文章:

  • 物流网站制作怎么做网站建设国际标准
  • 做调查问卷能挣钱的网站qq是腾讯还是阿里
  • 北京网站开发团队成都手机微信网站建设报价单
  • 免费网站建设模版云盘自己做网站语言构建服务器
  • 给别的公司提供网站建设平价建网站格
  • 打鱼在线游戏网站建设新建网站如何推广
  • 单页面网站 wordpress托管服务器是什么意思
  • 网站建设需要包含什么在哪些网站做收录比较快
  • 素材网站 源码珠海网站建设培训
  • 江苏网站建设公司哪家好互联网营销方案策划
  • 电子商务网站建设与管理感想网站 建设制作菜鸟教程
  • 漯河网站开发网页设计制作公司排行榜
  • google网站排名介绍化工项目建设和招聘的网站
  • 网站邮件推送竞价推广岗位职责
  • shtml怎么做网站企业宣传册制作
  • 大连开发网站建设黑帽seo优化软件
  • 如何查询一个网站是否备案用户界面设计案例
  • 哪些网站可以找兼职做室内设计站外引流推广渠道
  • 手机网站 布局com域名注册1元
  • 推广任务怎么做网站搜索引擎优化怎么做
  • 做网站 新域名 还是网络设计图纸是什么
  • 托管型网站手机网站 设置
  • 生产企业网站有哪些看广告挣钱一天300元
  • 网站建设网站推广服务公司时间轴网站设计
  • 网站如何做分站系统百度搜索不到我的网站
  • 青岛中英网站建设外协机械加工订单
  • 月嫂网站建设建设工程培训
  • 网站内容建设的布局和结构织梦 更换网站图标
  • 上海网站建设工作网格搜索优化
  • 花都定制型网站建设哈尔滨专业网站建设哪个好