范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

日常开发踩坑前端数据并不可信

  作者 | 浩说编程
  来源 | 公众号:浩说编程
  [ 大厂技术资源 | 研发必备安装包 | 限时免费获取 ]
  在我们的日常业务开发中,和前端的数据交互是必不可少的,通常前端会将参数以json格式发送至后端进行逻辑处理,但是前端传来的数据真的可以直接拿来用吗?
  本篇就针对这里的几个坑点为读者做科普和预警。
  一、前端的计算结果不能直接使用
  在实际业务开发中,为了提高效率经常发生的情况是:对于一些运算直接在前端处理,然后把计算的结果传给后端,这个时候可能会有读者这么做:/**  * 订单类  */ @RestController @RequestMapping("/order") public class OrderController{ @Autowired private OrderDao; //创建订单方法 @PostMapping("/create") public Result createOrder(@RequestBody OrderReqVo orderReqVo){   //直接拿前端的数据存DB   OrderDao.insertOrder(orderReqVo); }
  OrderReqVo说明:
  存在的问题:由于前端的开放性使得订单的总价字段有被恶意篡改的风险,如果金额被该成很低的价格,后果非常严重,之前亲身经历过由于这个问题导致的生产事故,请读者务必谨慎。
  改进的思路:通过入参中的商品id查库,根据数据库返回的单价重新计算总价,并与前端传来的总价做对比,不一致则返回提示信息,一致则正常插入数据库/**  * 订单类  */ @RestController @RequestMapping("/order") public class OrderController{ @Autowired private OrderDao orderDao; @Autowired private GoodsDao goodsDao; //创建订单方法 @PostMapping("/create") public Result createOrder(@RequestBody OrderReqVo orderReqVo){   //根据商品id查库获取商品单价   GoodsResVo goodsResVo = goodsDao.getGoodsById(orderReqVo.getGoodsId());   //计算总价   BigDecimal totalPrice = goodsResVo.getUnitPrice().multiply(new BigDecimal(orderReqVo.getGoodsNumber()));   //对比前端传来的总价   if(totalPrice.compareTo(orderReqVo.getTotalPrice()) == 0){     //即便正确也建议存后台计算的值     orderReqVo.setTotalPrice(totalPrice);     OrderDao.insertOrder(orderReqVo);   }else{     return Result.error(-1,"商品总价计算异常");   } }码文不易
  你的关注是浩说编程持续更新的动力
  浩说编程会做的更好
  二、校验下拉列表选项中可能出现的非法值
  在前端经常会出现下拉列表控件,其列表值通过从后端获取,用户在选择之后再传给后端:
  可能的码表结构:
  KEY
  VALUE
  TYPE
  1
  北京,Beijing   city   2
  上海,Shanghai   city   3
  南京,Nanjing   city   ......   对于这种情况,建议读者接到前端的选择数据后仍要校验一下数据是否是合法的,可以通过KEY校验,防止非法用户绕过浏览器页面通过工具恶意攻击。   以上就是"前端数据问题"踩过的坑以及脱坑建议,这些坑点都是真实发生过生产事故的案例,希望读者有所警觉。   作者 | 浩说编程   来源 | 公众号:浩说编程

最适合拍月亮的手机,vivoX70Pro拍照体验超棒当下很多用户都会在一些重要的节日中合影留念,并且这些日子也经常被看作是一家人团聚的日子。就好比最近的中秋节,很多人都会和家人团聚,随后便一起赏月拍照。对此有些手机的弊端便展现了出来徐州新城区抢房秘籍徐州新城区的房子真是香饽饽,简直热的发烫。去年,我在徐州东湖板块买的湖景房,我同学听说后就去买,结果因为只剩余少部分不理想的楼层,没买到。后来看中了新城区的神盘,捧着二百万现金,托河北高速印象最近去了趟河北。不是公干,我的工作跟河北不会发生任何交集,而是为了完成我的夙愿去河北省蔚县境内的小五台山户外穿越。这个季节,小五台美丽绽放的金莲花令人神往,好几年前就想去了,如今终iQOOZ5x来了!这样的配置确定是款千元机吗?从iQOO官方公布的新机宣传海报可以看到,这款Z系列新机有一款活力十足的亮橙配色,十分吸引用户的眼球,外观表现很出色。这也很容易让人联想起iQOO数字旗舰产品的橙色配色,相信iQO我的家乡邳城镇之天主教堂题外话昨天看到一篇文章,说一个人倘若越来越喜欢回忆了,说明他已经开始变老了。确实,人越老,越爱怀旧,越会回忆起往事。说起来,孩提时代的生活场景,童眼看世界,一切都是新鲜纯真美好的,双十一买vivo手机真划算!错过就要再等一年现如今又是来到了双十一的节日中,很多人购物车里面也是加入了自己心仪的东西,不过还是要多多关注今年的形势,不妨就来看一下今年vivo官网所发出的各种各样的活动。前段时间则是上市了iQvivoT1即将开售!亮点满满,你还在等什么?最近国内很多手机厂商出现了全新的举动,很多用户也是发现越来越多的新机型纷纷上市。就好比vivo上市了最新的T系列vivoT1,当下也是展开了预售阶段。并且为了让其具有更深的意义,发即将发布的iQOO8到底还有哪些亮点?多的也不说了,1930直播见不得不说8月份倒是真的热闹,国内手机厂商都推出自家新品,好一派热闹的景象。值得一提的是8月17日晚1930,iQOO8系列发布会将会召开,iQOO官博也是提前做了预热,曝光了iQOiQOOZ5终于出现在广大用户的面前,价格便宜配置又强iQOOZ5终于出现在广大用户的面前,据了解8128GB的价格为1899元起步,而且在其中也是加了很多优惠。并且这一次iQOOZ5针对屏幕和处理器等方面也是有了很大的提升。不妨就来vivo芯片仓库被曝光!蓝厂这次自研芯片成了?现如今手机市场的各大厂商可以说是操作频繁,他们为了让自己的产品得到更多的关注,也是加大力度去研制全新的技术,从而打造出属于自己的芯片。并且芯片一直都被看作是手机内核,它的功能越强大武汉房价真的停滞不涨了吗?大家对此如何看待,请点进来真实了解我是2016年年初从上海回到武汉,2010年前往上海工作,当时上海中环边的房价大约1。82。5万之间,武汉当时积玉桥现在的恒大首府9000左右,融侨华府在8500左右,上海闵行区莘
渣打大湾区中心竣工外资行积极推进跨境金融发展5月10日,渣打银行宣布渣打大湾区中心基础设施建设全部竣工,渣打大湾区中心盛大开幕,该项目总投资额为4000万美元。在渣打大湾区中心设立的axesslabs创新实验室作为中国的首站基本运算符本节介绍如何在Python中使用基本运算符。算术运算符就像任何其他编程语言一样,加法减法乘法和除法运算符可以与数字一起使用。number1234。0print(number)试着预华为研发失败案例2技术失败北京研究所第一个研发的产品是ISDN终端。当时的背景是全国在普及ISDN的应用,华为凭借在CC08交换机上率先能提供ISDN技术而攻克全国的市话市场,因此华为也同步开始ISDN终端5年无人机数据处理技术点总结Left(Right(BH,3),1)100批量提取编号BH,首先截取右边3位,再提取第1位数字,利用乘法得出整百数。selectcaseMCcase100OUTPUT第一类cas被低估的骁龙870,一亿像素OIS光学防抖,12256G内存仅1959元们在挑选手机的时候,市面上可谓种类繁多,厂商们都开启了机海战术,使得大家都不知道该买谁,特别是现在骁龙芯片不太给力,如果是盲目追求旗舰机,很可能得不到价位该有的体验,因此大部分人会竞争终让中国移动低下高傲的头颅,大方提供福利挽留老用户早前三大运营商公布了它们3月份的数据,数据显示中国移动的净增新客户数超越了中国电信,主要原因在于中国移动给予老用户更多福利,成功挽留老用户,避免了老用户流失所致,显示出它在竞争压力丹拿音响全景天幕比亚迪海豹配置曝光!这可比Model3香多了5月12日,比亚迪海豹的核心配置信息曝光,并将于5月20日开启预售。新车共有4款配置车型,并提供两个版本的快充解决方案,全系标配热泵空调,预计售价区间2228万元。四款配置车型,标这3款千元机,骁龙778G芯片,最低仅1299元,适合6075岁的老年人您在阅读前请点击上面的关注二字,后续会第一时间为您提供更多有价值的相关内容,感谢您的支持。有粉丝在后台留言说,想要给家里的老年人购买一部手机,性能不需要太高,老年人一般使用手机打电OPPO也有高性价比的千元机!骁龙778G5000mAh,13GB手机售价亲民去年骁龙888处理器算是一款比较失败的旗舰处理器,各大手机品牌一起出动也是没有一个能够很好控制发热问题,而就在这种情况之下,也是迫使的同期发布的骁龙870成为了神U,而论起实力的话荣耀70新机曝光顶配天玑9000100W快充荣耀系列的手机产品中,数字系列一直主打主流市场,通过高性能的硬件堆料在市场上获得了消费者的肯定。最近荣耀旗下有一款新型号的产品已经通过3C认证,或许全新的数字系列即将发布。根据目前跌至2399元,五千电池8GB144Hz高刷,售价亲民的骁龙8Gen1手机和去年的骁龙888一样,新一代骁龙8Gen1依旧有着发热大的问题,在红米K50电竞版发布会上,卢伟冰甚至还表示破芯片。但是大家也都看到了,这半年以来,大部分旗舰机还是采用骁龙8Ge