拉萨
切换分站
免费发布信息
当前位置:拉萨567房产网 > 拉萨热点资讯 > 拉萨民生资讯 >  [怎样保证]Java,提供接口服务,安全怎么保证?

[怎样保证]Java,提供接口服务,安全怎么保证?

发表时间:2023-03-28 19:25:52  来源:资讯  浏览:次   【】【】【
Java 提供接口服务,安全怎么保证? 1-面试&实际开发场景1-1面试场景题目      ​分布式服务接口的幂等性怎样设计(比如不能重复扣款)?1-2题目分析      ​一个分布式系统中的.

怎样保证

Java 提供接口服务,安全怎么保证?

1-面试&实际开发场景

1-1面试场景题目

      ​分布式服务接口的幂等性怎样设计(比如不能重复扣款)?

1-2题目分析

      ​一个分布式系统中的某个接口,要保证幂等性,怎样保证?这个事,其实是你做分布式系统的时候必须要考虑的一个生产环境的技术问题,为什么呢?

      实际案例1:

      ​假如你有个服务提供一个付款业务的接口,而这个服务分别部署在5台服务器上,然后用户在前端操作时,不知道为啥,一个订单不小心发起了两次支付请求,然后这俩请求分散在了这个服务部署的不同的服务器上,这下好了,一个订单扣款扣了两次。

      实际案例2:

      ​订单系统调用支付系统进行支付,结果不消息网络,然后订单系统走了前面我们看到的重试retry机制,那就给你重试一次吧,那么支付系统收到了一个支付请求两次,而且因为负载均衡算法落在了不同的机器上。

      小结:

      ​所以你必须得知道这事,否则你做出来的分布式系统恐怕很容易埋坑!

2-幂等性介绍

2-1-概念:

      ​用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。

      举个简单的例子:那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常了,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条。在以前的单应用系统中,我们只需要对数据操作加入事务即可,发生错误的时候立即回滚,但是再响应客户端的时候也有可能网络中断或者异常等等情况。

2-2-产生幂等性问题的原因:

网络问题/用户误操作/恶意操作,用户点击了多次网络问题,微服务重试retry网络问题很常见,100次请求,都ok;1万次请求可能1次超时会重试;10万次可能10次超时会重试,100万次可能100次超时会重试;如果100个请求重复了,你没处理,导致订单扣款2次,100个订单都扣错了,每天被100个用户投诉,一个月被3000个用户投诉。

2-3-使用幂等性的场景

前端重复提交:前端瞬时点击多次造成表单重复提交接口超时重试:接口可能会因为某些原因而调用失败,处于容错性考虑会加上失败重试的机制。如果接口调用一半,再次调用就会因为脏数据的存在而产生异常消息重复消费:在使用消息中间件来处理消息队列,且手动ack确认消息被正常消费时。如果消费者突然断开链接,那么已经执行了一半的消息会重新放回队列。被其他消费者重新消费时就会导致结果异常,如数据库重复数据,数据库数据冲突,资源重复等请求重发:网络抖动引发的nginx重发请求,造成重复调用。

3-幂等性的解决方案

3-1-Insert接口幂等性

1.使用分布式锁保证幂等性

      ​秒杀场景下,一个用户只能购买同一商品一次的解决方法:采用用户ID商品ID,存储到redis中,使用redis中的setNX操作,等待自然过期。

2.使用token机制保证幂等性

      ​用户注册时,用户点击注册按钮多次,是不是会注册多个用户?我们可以在用户进入注册页面后由后台生成一个token,传给前端页面,用户在点击提交时,将token带给后台,后台使用该token作为分布式锁,setNX操作,执行成功后不释放锁,等待自然过期。

3.使用mysqluniquekey保证幂等性

      ​用户注册时,用户点击注册按钮多次,是不是会注册多个用户?我们可以使用手机号作为mysql用户表唯一key。也就是一个手机号只能注册一次。

3-2-Update接口幂等性

      update操作可能存在幂等性的问题:

      1.用户更改个人信息,疯狂点击按钮,不会发生幂等性问题,因为数据始终为修改后的数据。

      2.用户购买商品,用户在点击后,网络出现问题,可能再次点击,这样就会出现幂等性问题,导致购买了多次,可以使用乐观锁

      updateordersetcount=count-1,version=version1whereid=1andversion=1

Java 提供接口服务,安全怎么保证?

      简单的说一下,开发一个APP,需要考虑以下几个方面,不然如果接口暴露到公网,危险非常大。

      1.请求合法性校验,考虑采用token方式保证接口不被其他人访问。

      2.数据校验,白名单方式验证数据确保不出现异常数据和注入攻击。

      3.数据加密,对数据进行加密保证其他人无法非法监听或截取。

      4.错误处理,对系统返回结果编制返回码,避免堆栈信息泄露。

      5.接口阈值,对接口访问频率设置阈值,超出设定的访问频率时返回错误码。

怎样保证 PPT 在其它电脑不出问题?

      一般你要了解一下你演示的时候powerpoint版本,然后做ppt的时候保存成相应版本的ppt。另外如果是静态的话可以保存成全图ppt,这样就不会出问题了(islide插件,一键生成全图ppt)

怎样保证 PPT 在其它电脑不出问题?

      怎样保证PPT在其它电脑不出问题?首先要知道PPT什么部分容易出问题——

      容易出问题的部分:1、特殊字体;2、特殊格式(包括排版格式和特殊效果);3、文档版本

      基本就以上三点。

      下面我们一个个来看:

      1:题主遇到的字体失效:用了非win自带字体,两个办法一是蠢蠢的把字体打包发给对方让他自己安装。

      二就是嵌入字体。

      PPT里选择:文件——选项——保存——将字体嵌入文件——最好选择"仅嵌入文稿中的字体"这样PPT文件不会太大,不过同时你只能用该字体打出PPT里已有的那几个字。

      如果选择下面的“嵌入所有字符”那就可以任意编辑,但——PPT文件超大,我下图中只有两页的PPT嵌入所有字符后有19Mb大,这就很不划算了。

      操作如下图。

      2:特殊格式

      题主的纵向文本框文字距离拉特别大。

      说实话我也不知道这个问题怎么出现的,

      我能想到的是题主在做PPT时就把文本框拉特别大,然后文字本来是向顶部缩进对齐,没问题,但后来题主不小心改了按到了文字对齐方式,把它改成了文字占满文本框,自己却没注意到。然后忘了这事,在别人电脑后就……

      要问我怎么这么能想……因为我……小白时就出现过上面这种情况……

      回到正题。

      我说的特殊格式,包括并不限于:用了异形排版的文本框,文字或图片用PPT自带特殊效果做处理,插入了特殊的形状或矢量图,等等

      不想让以上东西出现在别人电脑上错版的情况,

      可以直接右击文本框(没有光标闪烁)选择将其保存为图片(PNG透明背景)

      再手动插入该图片。

      变成图片后虽然不方便修改,但会十分方便调整大小和位置。

      即把一切可能生变的PPT部分,变成图片这种死物。

      所以——最好的杜绝PPT在别人电脑出问题的方式就是把整个PPT保存为图片,

      当然要求你的PPT不能有任何动画效果。所见即所得。

      把整个PPT变图片的操作步骤:

      ①按照正常方式“另存为”PPT

      ②在最后保存格式中,下拉选择项直接选择JPG图片格式

      ③PPT就会一页一页自动保存为图片存放在一个文件夹里。每张图片的大小和你设置的PPT页面大小一致。

      ④新建空白PPT,直接把导出图片设置成背景。

      很多你下载的PPT模板不是PSP出那么好看的背景,而就是用的这个方式做的。

      操作如下图:

      如果说你的PPT有一点动画,或者主体文字还可能有改动,也没关系,把PPT异形部分和背景先做好存成图片,再在图片上加入动画和文字。

      最后一点3、文档版本

      如果你的PowerPiont文档版本较高,保存时请选择文档格式为2003通用版。

      还有一点,现在的PPT都是16:9的页面,请注意对方电脑的powerpoint是否还停留在4:3的页面比例。

      调整页面比例如下图,右边的红框:

      如果答主还有更多关于PPT文档的问题,可以看我的微信文章:

      还有任何疑问可以关注我的微信芒果汁PPT小白助手(ID:MangoJuicePPT))

      有问题随时提问。

      如果以上几点对你有帮助,请不要吝啬你的赞十分感谢!

      ——————————————————————————————————

      芒果汁其他PPT相关回答:

      有哪些制作好PPT的习惯?

      微信公众号怎样运营?

      抖音里面的最强PPT怎么做?

      PPT中有哪些看上去非常冷门但非常实用的技巧?

      有哪些好的ppt素材网站,推荐下?

      怎样做出高大上的PPT?

免责声明:本站部分内容转载于网络或用户自行上传发布,其中内容仅代表作者个人观点,与本网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,不负任何法律责任,请读者仅作参考,并请自行核实相关内容。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,发送到本站邮箱,我们将及时更正、删除,谢谢。