首页 > 其他分享 >日常开发中注意点总结(一)

日常开发中注意点总结(一)

时间:2024-05-30 09:12:36浏览次数:22  
标签:总结 请求 校验 更新 修改 开发 日常 F12 页面

对于更新的功能,在开发的时候,需要注意一些内容

问题一:举例子:对于应付结算单修改页面中那些不支持修改的内容,我在前台通过点击按钮调用一次更新方法,不能被更新,即使在前台页面中是有限制不能修改, 但是如果通过F12,是可以拿到请求url、请求参数的,如果此时如果通过F12,将url请求重发一下,并手动将不能修改的字段修改了,再发送,那后台如果用的是mybatisplus的updateById的话,就会把所有传过来 非空的字段进行更新。这样就会产生不能修改的字段可以 被修改了。可以会造成不必要的麻烦或者损失。 那针对于这种问题,我们如何去解决呢 ?

(1)方式一:对于后台接收修改入参的实体VO中,仅仅有那些可以修改的字段,不包含不能被修改的字段,这样即使前台再怎么模拟请求,修改参数,对于不能修改的字段也是无法修改的,这种情况就无法修改的字段 就避免了通过其他方式的修改了,那对于可以修改的字段,也不能说里面的值是可以任意修改的,比如下拉框那种向后台传枚举值的,从前台页面点击的话,自然是有限制,只能传输那些固定合法的枚举值, 但是如果通过F12,修改这些字段再发请求也是能被修改的,所以为了增强程序对这种类型字段的安全性限制,就需要在后台通过自定义注解或者业务代码的校验,来校验这些字段的变化是否合理,合理才能被修改 不能只要发过来请求就被修改,这样会保证这些枚举值字段的安全性(这个还包含于那种级联下拉框的选择,比如我选择完第一个之后,第二个只能选择固定的一些,这种也可以在后台通过业务进行限制; 还包含那种本身就带有金额校验的那些字段,在更新的时候也是得校验的,不能前台传什么就存什么),这个最后就还可以通过mybatisplus的updateById进行更新数据库操作,这样是问题不大的,因为限制都在前面加了

(2)方式二:对于后台接收的修改的入参实体中包含该页面的所有字段(因为有很多代码生成器,对某个实体的生成的话,肯定是生成了所有的字段,此时VO里面就有页面的所有字段了),此时就像第一种方式一样,对那些枚举字段或者 金额字段该加的校验还是要加的,但是最后就不能直接使用 mybatisplus的updateById这个方法了,因为还使用这方法的话,如果请求中的参数是通过F12的方式传参,并在F12中模拟请求,已经将不能修改的参数修改了, 此时再直接用updateById(实体)进行修改的话,就会把不能修改的字段也给修改了,这也会有很大的问题,所以对于这种入参VO中包含所有参数的,需要在操作数据库的时候,自己去写update方法,仅仅根据需要更新 的那些字段是否为空,来更新那些能修改的字段,形如这种的sql update table set A =? ,B =? ,C=? where id =?这种的; 其中后面都是本就可以更新的那些字段

 

但是这两个方式也会有限制:

对于那种用户直接填写的字段,只是作为展示的,无法在业务代码、自定义注解中进行校验的,还是可以被不法分子通过F12 进行任意修改的,这种通过上述两种方式是无法避免的 这种就得通过判断请求是从哪个域名请求过来的,去拦截了,这就是更深一个层次的内容了,因为从浏览器登录账号页面操作的,那种是从固有的域名下发送的,但是对于不法分子,通过各种手段,拿到请求rul及入参,肯定是 通过其他工具进行请求,这种可能就不是从这个域名过来的了,这种的请求就可以被拦截。这种就能避免那种问题 了

 

标签:总结,请求,校验,更新,修改,开发,日常,F12,页面
From: https://www.cnblogs.com/isme-zjh/p/18221586

相关文章

  • 【译】使用 .NET Aspire 和 Visual Studio 开发云原生应用
    我们很高兴地向大家介绍.NETAspire,它旨在简化.NET云原生应用程序的构建和管理方式。.NETAspire为像您这样的开发人员提供了一个改进的、有主见的框架,用于构建分布式应用程序,确保无缝和一致的开发体验。这个新的技术栈汇集了一系列工具、模式和特殊的NuGet包,这些......
  • 基于企业定制开发AI智能名片S2B2C商城系统小程序的新零售闭环生态构建研究
    摘要:随着新零售时代的到来,线上线下融合成为零售企业转型升级的重要方向。本文通过分析新零售闭环生态的三大基本要素——基础系统底层服务设施、实体门店和线上商城、智能设备,并结合某知名零售企业定制开发的AI智能名片S2B2C商城系统小程序案例,探讨了如何构建高效、便捷的新零......
  • 在开发系统中将 .net core 6.0 Web API 部署到 IIS 无法正常工作
    发布到本地文件夹并配置到IIS进行测试的.netcore6.0Webapi无法正常工作。Thissitecan'tbereachedlocalhostrefusedtoconnect.请尝试:检查连接检查代理和防火墙ERR_CONNECTION_REFUSED已执行步骤......
  • Windows驱动开发涉及到许多重要的概念和技术,包括调试、进程管理、文件操作、注册表访
    Windows驱动开发涉及到许多重要的概念和技术,包括调试、进程管理、文件操作、注册表访问、系统调用、IRP(I/ORequestPacket)和锁原理。以下是对每个主题的简要介绍:调试Windows驱动程序的调试通常涉及使用调试器(如WinDbg)来分析驱动程序的运行时行为,包括查看内存、寄存器状态、......
  • 学完《编辑器扩展精讲》总结
    学完《编辑器扩展精讲》总结思维导图思维导图pos下载结构POS文件下载代码仓库gitee......
  • ctf 总结-赛博朋克 bugku
    今天看了bugku的赛博朋克的题,binwalk分离出了20.zlib。总以为要解压20.zlib。strings了20.zlib什么都没有。找了writeup,原来在binwalk分离的20.png中,要用zsteg自动查看png就能看到text: 原来还有zsteg这种利器,ctf水平高不高,不在于水平如何,要眼界广。脑......
  • Dify vs Langchain:AI应用开发的全面分析
    1.探索AI应用开发的基础在AI应用开发的世界里,选择一个合适的平台是至关重要的。Dify和Langchain作为这个领域中的佼佼者,各自提供了独特的功能和能力,满足了各种开发者的需求。1.1.平台在AI开发中的作用深入研究AI应用开发时,选择合适的平台对成功至关重要。选对平台非常关键,因......
  • 【介绍下运维开发】
    ......
  • 20240529刷题总结
    T1(批量式kruskal,增量式的nb应用)ABC355F.这题边权巨小。只有10。考虑从此处下手。这里考虑kruskal的过程,我们一开始的想法是,不断加权值最小的边,但是这里显然有冗余,我们没有必要一个个取吧?考虑一次把x边取完。也就是开10批,当然开并查集维护连通关系,也就是维护出这10个并查集。对于......
  • 树的性质小总结
    树的性质总结树的定义树是一种非线性存储结构,通常用来存储逻辑关系为"一对多"的数据。T=(D,R)树是n(n≥0)结点的有限集合。n=0时,称为空树。有且仅有一个结点d0∈D,它对于关系来说没有前驱结点,结点d0称为根的结点。除根结点外,D中每个结点有且仅有一个前驱结点,但可以有......