业务安全详解
文章目录
- 一、 业务安全概述
- 1.1 业务安全现状
- 1.1.1 业务逻辑漏洞
- 1.1.2 黑客攻击的目标
- 二、 业务安全测试
- 2.1 业务安全测试流程
- 2.1.1 测试准备
- 2.1.2 业务调研
- 2.1.3 业务建模
- 2.1.4 业务流程梳理
- 2.1.5 业务风险点识别
- 2.1.6 开展测试
- 2.1.7 撰写报告
- 三、 业务安全经典场景
- 3.1 业务数据安全
- 3.1.1 商品支付金额篡改
- 3.1.2 前端JS限制绕过
- 3.1.3 请求重放测试
- 3.1.4 业务上限测试
- 3.1.5 商品订购数量篡改
- 3.2 密码找回安全
- 3.2.1 验证码客户端回显测试
- 3.2.2 验证暴力破解
- 3.2.3 Response 状态值修改测试
- 3.2.4 Session覆盖
- 3.2.5 弱Token设计缺陷测试
- 3.2.6 密码找回流程绕过测试
- 3.2.7 接口参数账号修改
一、 业务安全概述
1.1 业务安全现状
1.1.1 业务逻辑漏洞
近年来,随着信息化技术的迅速发展和全球一体化进程的不断加快,计算机和网络已经成为与所有人都息息相关的工具和媒介,个人的工作、生活和娱乐,企业的管理,乃至国家的发展和改革都无处其外。信息和互联网带来的不仅仅是便利和高效,大量隐私、敏感和高价值的信息数据和资产,成为恶意攻击者攻击和威胁的主要目标,从早期以极客为核心的黑客黄金时代,到现在利益链驱动的庞大黑色产业,网络安全已经成为任何个人、企业、组织和国家所必须面临的重要问题。网络安全和信息化是事关国家安全和国家发展、事关广大人民群众工作生活的重大战路问题,没有网络安全就没有国家安全,没有信息化就没有现代化。”
随着互联网+的发展,经济形态不断地发生演变。众多传统行业逐步地融入互联网并利用信息通信技术以及互联网平台进行着频繁的商务活动,这些平台(如银行、保险、证券、电商、P2P、O2O、游戏、社交、招聘、航空等)由于涉及大量的金钱、个人信息、交易等重要隐私数据,成为了黑客攻击的首要目标,而因为开发人员安全意识淡薄(只注重实现功能而忽路了在用户使用过程中个人的行为对Wb应用程序的业务逻辑功能的安全性影响)、开发代码频繁迭代导致这些平台业务逻辑层面的安全风险层出不穷。
业务逻辑漏洞主要是开发人员业务流程设计的缺陷,不仅限于网络层、系统层、代码层等。比如登录验证的绕过、交易中的数据篡改、接口的恶意调用等,都属于业务逻辑漏洞。
1.1.2 黑客攻击的目标
一方面随着社会和科技的发展,购物、社交、P2P、O20、游戏、招聘等业务纷纷具备了在线支付功能。如电商支付系统保存了用户手机号、姓名、家庭住址,包括支付的银行卡信息、支付密码信息等,这些都是黑客感兴趣的敏感信息。攻击者可以利用程序员的设计缺陷进行交易数据篡改、敏感信息盗取、资产的窃取等操作。现在的黑客不在以炫耀技能为主要攻击目的,而主要以经济利益为目的,攻击的目的逐渐转变为趋利化。
另一方面,如今的业务系统对于传统安全漏洞防护的技术、设备和开发框架越来越成熟,基于传统漏洞入侵也变得越来越困难,增加了黑客攻击的成本。而业务逻辑漏洞可以逃逸各种安全防护,迄今为止没有很好的解决办法。也是为什么黑客偏好使用业务逻辑漏洞攻击的一个原因。
一夜薅走星巴克上千万,背后的“⽺毛党”究竟有多可怕?
拼多多一夜被薅200亿?4毛充100话费,一个bug引发的惨案!
为了解决业务安全所带来的风险,所以要对业务安全进行审计。
二、 业务安全测试
2.1 业务安全测试流程
2.1.1 测试准备
-
准备阶段主要包括对业务系统的前期熟悉⼯作,以了解被测试业务系统的数量、规模和场景等内容。
-
针对⽩盒测试,可以结合相关开发⽂档去熟悉相关系统的业务;
-
针对⿊盒测试,可通过实际操作还原业务流程的⽅式理解业务。
2.1.2 业务调研
业务调研阶段主要针对业务系统相关负责⼈进⾏访谈调研,了解业务系统的整体情况,包括部署情况、功能模块、业务流程、数据流、业务逻辑以及现有的安全措施等内容。根据以往测试实施经验,在业务调研前可先设计访谈问卷,访谈后可能会随着对客⼾业务系统具体情况了解的深⼊而不断调整、更新问卷(⿊盒测试此步骤可忽略)。
2.1.3 业务建模
针对不同⾏业、不同平台的业务系统,如电商、银⾏、⾦融、证券、保险、游戏、社交、招聘等业务系统,识别出其中的⾼⻛险业务场景进⾏建模。
以电商系统为例:
2.1.4 业务流程梳理
以商城⽤⼾登录。
建模完成后需要对重要业务场景的各个业务模块逐一进⾏业务流程梳理,从前台和后台、业务和⽀撑系统等4 个不同维度进⾏分析,识别各业务模块的业务逻辑、业务数据流和功能字段(传参点)等。
业务模块的流程梳理主要遵循以下原则:
-
区分业务主流程和分⽀流程,业务梳理⼯作是围绕主流程进⾏分析的,而主流程一定是核⼼业务流程,业务流程重点梳理的对象⾸先应放在核⼼主流程上,务必梳理出业务关键环节;
-
概括归纳业务分⽀流程,业务分⽀流程往往存在通⽤点,可将具有业务相似性的分⽀流程归纳成某一类型的业务流程,⽆须单独对其进⾏测试;
-
识别业务流程数据信息流,特别是业务数据流在交互⽅双⽅之间传输的先后顺序、路径等;
-
识别业务数据流功能字段,识别数据流中包含的重要程度不等的信息,理解这些字段的含义有助于下阶段⻛险点分析。
2.1.5 业务风险点识别
在完成前期不同维度的业务流程梳理⼯作后,针对前台业务应着重关注⽤⼾界⾯操作每一步可能的逻辑⻛险和技术⻛险;针对后台业务应着重关注数据安全、数据流转及处理的⽇志和审计。
业务⻛险点识别应主要关注以下安全⻛险内容。
业务环节存在的安全⻛险,业务环节存在的安全⻛险指的是业务使⽤者可⻅的业务存在的安全⻛险,如注册、登录和密码找回等⾝份认证环节,是否存在完善的验证码机制、数据一致性校验机制、Session 和Cookie 校验机制等,是否能规避验证码绕过、暴⼒破解和SQL 注⼊等漏洞。
⽀持系统存在的安全⻛险,⽀持系统存在的安全⻛险,如⽤⼾访问控制机制是否完善,是否存在⽔平越权或垂直越权漏洞。系统内加密存储机制是否完善,业务数据是否明⽂传输。系统使⽤的业务接口是否可以未授权访问或调⽤,是否可以调⽤重放、遍历,接口调⽤参数是否可篡改等。
业务环节间存在的安全⻛险,业务环节间存在的安全⻛险,如系统业务流程是否存在乱序,导致某个业务环节可绕过、回退,或某个业务请求可以⽆限重放。业务环节间传输的数据是否有一致性校验机制,是否存在业务数据可被篡改的⻛险。
⽀持系统间存在的安全⻛险,⽀持系统间存在的安全⻛险,如系统间数据传输是否加密、系统间传输的参数是否可篡改。系统间输⼊参数的过滤机制是否完善,是否可能导致SQL 注⼊、XSS 跨站脚本和代码执⾏漏洞。
业务环节与⽀持系统间存在的安全⻛险,业务环节与⽀持系统间存在的⻛险,如数据传输是否加密、加密⽅式是否完善,是否采⽤前端加密、简单MD5 编码等不安全的加密⽅式。系统处理多线程并发请求的机制是否完善,服务端逻辑与数据库读写是否存在时序问题,导致竞争条件漏洞。系统间输⼊参数的过滤机制是否完善。
2.1.6 开展测试
对前期业务流程梳理和识别出的⻛险点,进⾏有针对性的测试。
2.1.7 撰写报告
针对业务安全测试过程中发现的⻛险结果进⾏评价和建议,综合评价利⽤场景的⻛险程度和造成影响的严重程度,最终完成测试报告的编写。
三、 业务安全经典场景
3.1 业务数据安全
3.1.1 商品支付金额篡改
典型案例: 1 毛钱买电冰箱
电商类⽹站在业务流程整个环节,需要对业务数据的完整性和一致性进⾏保护,特别是确保在⽤⼾客⼾端与服务端、业务系统接口之间的数据传输的一致性,通常在订购类交易流程中,容易出现服务器端未对⽤⼾提交的业务数据进⾏强制校验,过度信赖客⼾端提交的业务数据而导致的商品⾦额篡改漏洞。商品⾦额篡改测试,通过抓包修改业务流程中的交易⾦额等字段,例如在⽀付⻚⾯抓取请求中商品的⾦额字段,修改成任意数额的⾦额并提交,查看能否以修改后的⾦额数据完成业务流程。
该项测试主要针对订单⽣成的过程中存在商品⽀付⾦额校验不完整而产⽣业务安全⻛险点,通常导致攻击者⽤实际⽀付远低于订单⽀付的⾦额订购商品的业务逻辑漏洞。
3.1.2 前端JS限制绕过
典型案例:绕过JS 限制,购买多个打折商品
很多商品在限制⽤⼾购买数量时,Web 应⽤仅在⻚⾯通过JS 脚本限制,未在服务器端校验⽤⼾提交的数量,通过抓取客⼾端发送的请求包修改JS端⽣成处理的交易数据,如将请求中的商品数量改为⼤于最⼤数限制的值,查看能否以⾮正常业务交易数据完成业务流程。
该项测试主要针对电商平台由于交易限制机制不严谨、不完善而导致的一些业务逻辑问题。例如,在促销活动中限制商品购买数量,却未对数量进⾏前、后端严格校验,往往被攻击者所利⽤,购买多个促销商品,造成商家的损失。
3.1.3 请求重放测试
典型案例:一次购买,多次收货
请求重放漏洞是电商平台业务逻辑漏洞中一种常⻅的由设计缺陷所引发的漏洞,通常情况下所引发的安全问题表现在商品⾸次购买成功后,参照订购商品的正常流程请求,进⾏完全模拟正常订购业务流程的重放操作,可以实现“一次购买,多次收货” 等违背正常业务逻辑的结果。
该项测试主要针对电商平台订购兑换业务流程中对每笔交易请求的唯一性判断缺乏有效机制的业务逻辑问题,通过该项测试可以验证交易流程中随机数、时间戳等⽣成机制是否正常。
3.1.4 业务上限测试
典型案例:⽆限制查询历史消费记录。
业务上限测试主要是针对一些电商类应⽤程序在进⾏业务办理流程中,服务端没有对⽤⼾提交的查询范围、订单数量、⾦额等数据进⾏严格校验而引发的一些业务逻辑漏洞。通常情况下,在业务流程中通过向服务端提交⾼于或低于预期的数据以校验服务端是否对所提交的数据做预期强校验。存在此类脆弱性的应⽤程序,通常表现为查询到超出预期的信息、订购或兑换超出预期范围的商品等。该项测试主要判断应⽤程序是否对业务预期范围外的业务请求做出正确回应。
3.1.5 商品订购数量篡改
典型案例:damicms_5.4_⽹上商城任意商品购买
商品数量篡改测试是通过在业务流程中抓包修改订购商品数量等字段,如将请求中的商品数量修改成任意⾮预期数额、负数等进⾏提交,查看业务系统能否以修改后的数量完成业务流程。
该项测试主要针对商品订购的过程中对异常交易数据处理缺乏⻛控机制而导致相关业务逻辑漏洞,例如针对订购中的数量、价格等缺乏判断而产⽣意外的结果,往往被攻击者利⽤。
3.2 密码找回安全
- ⽤⼾提交修改密码请求;
- 账号认证:服务器发送唯一ID(例如短信验证码)只有账⼾所有者才能看的地⽅,完成⾝份验证;
- ⾝份验证:⽤⼾提交验证码完成⾝份验证;
3.2.1 验证码客户端回显测试
典型场景:
- 任意⽤⼾登录
使⽤验证码的场景:
-
⼈机验证:防⽌机器操作,爆破表单。
-
唯一凭据:唯一性判断,任意账⼾登录。
找回密码测试中要注意验证码是否会回显在响应中,有些⽹站程序会选择将验证码回显在响应中,来判断⽤⼾输⼊的验证码是否和响应中的验证码
3.2.2 验证暴力破解
典型案例:
-
验证码⽆使⽤次数限制
找回密码功能模块中通常会将⽤⼾凭证(一般为验证码)发送到⽤⼾⾃⼰才可以看到的⼿机号或者邮箱中,只要⽤⼾不泄露⾃⼰的验证码就不会被攻击者利⽤,但是有些应⽤程序在验证码发送功能模块中验证码位数及复杂性较弱,也没有对验证码使⽤次数做限制而导致验证码可被暴⼒枚举并修改任意⽤⼾密码。
在测试验证码是否可以被暴⼒枚举时,可以先将验证码多次发送给⾃⼰的账号,观察验证码是否有规律,如每次接收到的验证码为纯数字并且是4位数。
3.2.3 Response 状态值修改测试
Response 状态值修改测试,即修改请求的响应结果来达到密码重置的⽬的,存在这种漏洞的⽹站或者⼿机App 往往因为校验不严格而导致了⾮常危险的重置密码操作。
这种漏洞的利⽤⽅式通常是在服务端发送某个密码重置的凭证请求后,出现特定的响应值,⽐如:
-
true
-
1
-
ok
-
success
-
200
…
⽹站看到回显内容为特定值后即修改密码或者登陆,通常这种漏洞的回显值校验是在客⼾端进⾏的,所以只需要修改服务器的响应数据包即可。
3.2.4 Session覆盖
Session ID 也叫会话ID,服务器对浏览器客⼾端⽤⼾⾝份进⾏唯一性标志。
找回密码逻辑漏洞测试中也会遇到参数不可控的情况,⽐如要修改的⽤⼾名或者绑定的⼿机号⽆法在提交参数时修改,服务端通过读取当前session 会话来判断要修改密码的账号,这种情况下能否对session 中的内容做修改以达到任意密码重置的⽬的呢?
在某⽹站中的找回密码功能中,业务逻辑是:由⽤⼾使⽤⼿机进⾏密码重置,然后服务端向⼿机发送验证码短信,⽤⼾输⼊验证码提交后,进⼊密码重置⻚⾯。
对⽹站中Session 覆盖的测试如下:
-
打开浏览器,访问重置密码⻚⾯,并提交⾃⼰的⼿机号(133),同时浏览器接收Session ID;
-
⽤⾃⼰的账号(⼿机号,133)接收凭证(短信验证码);
-
获得凭证校验成功后,进⼊密码重置⻚⾯;
-
在浏览器新标签重新打开找回密码⻚⾯,输⼊⽬标⼿机号(177),此时服务器就会重新下发Session ID;此时当前SessionID 已经被覆盖,重新回到第三步中打开的重置密码⻚⾯即可重置⽬标⼿机号密码。
漏洞原因:
在验证码校验之后,没有及时更新Session ID,或者没有及时更新服务器端SESSION 信息。SessionID 不仅要与⼿机号绑定,还要与验证码绑定。
3.2.5 弱Token设计缺陷测试
在找回密码功能中,很多⽹站会向⽤⼾邮箱发送找回密码⻚⾯链接。⽤⼾只需要进⼊邮箱,打开找回密码邮件中的链接,就可以进⼊密码重置⻚⾯了。找回密码的链接通常会加⼊校验参数来确认链接的有效性,通过校验参数的值与数据库⽣成的值是否一致来判断当前找回密码的链接是否有效。
http://www.xxx.com/findpwd?uid=ajest&token=ajest-2021-1026-1324
3.2.6 密码找回流程绕过测试
很多⽹站的密码找回功能一般有以下⼏个步骤:
-
⽤⼾输⼊找回密码的账号;
-
校验凭证:向⽤⼾发送短信验证码或者找回密码链接,⽤⼾回填验证码或单击链接进⼊密码重置⻚⾯,以此⽅式证明当前操作⽤⼾是账号主⼈;
-
校验成功进⼊重置密码⻚⾯(接口)。
在找回密码逻辑中,第⼆步校验凭证最为重要。不是账号主⼈是⽆法收到校验凭证的,试想有没有办法可以绕过第⼆步凭证校验,直接进⼊第三步重置密码呢?
⽤⼾修改密码需要向服务器发送修改密码请求,服务器通过后再修改数据库中相应的密码,所以在测试中我们⾸先要收集三个步骤的请求接口,重点是收集到最后一步重置密码的接口,这样我们可以直接跳过凭证校验的接口去尝试直接重置密码。
3.2.7 接口参数账号修改
典型案例:
- metinfo_4.0 任意账号密码重置
找回密码功能逻辑中常常会在⽤⼾修改密码的接口提交的参数中存在传递⽤⼾账号的参数,而⽤⼾账号参数作为一个可控变量是可以被篡改的,从而导致修改账号密码的凭证或修改的⽬标账号出现偏差,最终造成任意账号密码修改的漏洞。
通常在找回密码逻辑中,服务端会要求⽤⼾提供要修改的账号,然后给这个账号发送只有账号主⼈才能看到的凭证。⽐如给这个账号主⼈绑定的邮箱或者⼿机号发送验证码,或者找回密码链接,这样可以保证只有账号主⼈才可以看到这些凭证。但是如果服务器对账号的控制逻辑不当,就会导致原有账号被篡改为其他账号,服务器端把凭证发送给篡改后的账号的邮箱或⼿机,最终造成可利⽤凭证重置任意账号密码的漏洞。
而⽤⼾账号参数作为一个可控变量是可以被篡改的,从而导致修改账号密码的凭证或修改的⽬标账号出现偏差,最终造成任意账号密码修改的漏洞。
通常在找回密码逻辑中,服务端会要求⽤⼾提供要修改的账号,然后给这个账号发送只有账号主⼈才能看到的凭证。⽐如给这个账号主⼈绑定的邮箱或者⼿机号发送验证码,或者找回密码链接,这样可以保证只有账号主⼈才可以看到这些凭证。但是如果服务器对账号的控制逻辑不当,就会导致原有账号被篡改为其他账号,服务器端把凭证发送给篡改后的账号的邮箱或⼿机,最终造成可利⽤凭证重置任意账号密码的漏洞。
接口参数账号修改流程测试为拦截前端请求,通过修改请求内的账号ID 、名称或者邮箱、⼿机号等参数,将修改后的数据发送给服务器进⾏欺骗达到密码重置的⽬的。
相关文章:
业务安全详解
文章目录 一、 业务安全概述1.1 业务安全现状1.1.1 业务逻辑漏洞1.1.2 黑客攻击的目标 二、 业务安全测试2.1 业务安全测试流程2.1.1 测试准备2.1.2 业务调研2.1.3 业务建模2.1.4 业务流程梳理2.1.5 业务风险点识别2.1.6 开展测试2.1.7 撰写报告 三、 业务安全经典场景3.1 业务…...
算法笔记--最大连续1的个数Ⅲ
leetcode题目链接:1004. 最大连续1的个数 III 题目描述 给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。 思路 这里可以转换思路,让题意更加明确:即,求一个最大连续区间…...
Linux CentOS7 添加中文输入法
在安装CentOS7时,现在默认安装了桌面中文系统。可以切换为英文,中英文可以按要求随时更换。而在CentOS7桌面环境下,显示中文非常方便、正确,但不能录入中文。 在远程登录系统的情况下,不论是系统语言(LANG…...
Python接口自动化封装导出excel方法和读写excel数据
一、首先需要思考,我们在页面导出excel,用python导出如何写入文件的 封装前需要确认python导出excel接口返回的是一个什么样的数据类型 如下:我们先看下不对返回结果做处理,直接接收数据类型是一个对象,无法获取返回值…...
React三属性之:refs
作用 refs是为了获取节点,使用场景主要在需要操作dom的时候,比如echarts,就需要真实的dom节点 使用 import React from "react"; class RefsTest extends React.Component{state {value:输入框的值}refPlan React.createRef()logRef ()>{console.log(this.r…...
将Vue项目迁移到微信小程序中
文章目录 一、创建一个Vue.js的应用程序二、构建微信小程序1. 安装微信小程序构建工具2. 在vuejs项目的根目录中创建一个wepy.confgjs文件3. 在vuejs项目的根目录中运行构建 三、错误记录1. 找不到编译器:wepy-compiler-sass 一、创建一个Vue.js的应用程序 使用 Vu…...
php权限调整强制用户退出的解决方案
要强制用户重新登录,你可以采取以下步骤: 当用户登录时,将用户的登录状态和其他相关信息存储在服务器端。例如,你可以将用户ID、用户名或其他标识符存储在服务器的会话(session)中。当管理员修改用户的某些…...
[uniapp]踩坑日记 unexpected character > 1或‘=’>1 报错
在红色报错文档里下滑,找到Show more 根据提示看是缺少标签,如果不是缺少标签,看看view标签内容是否含有<、>、>、<号,把以上符合都进行以<号为例做{{“<”}}处理...
面试求职-经典面试问题
16个经典面试问题回答思路 面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现的一些典型问题进行了整理,并给出相…...
在Linux服务器上部署Tornado项目
要在Linux服务器上部署Tornado项目,你可以按照以下步骤进行操作: 1、准备服务器: 确保你的服务器上安装了Python。Tornado通常与Python 3兼容,因此建议安装Python 3.x。 安装和配置一个Web服务器,如Nginx或Apache&a…...
JWT认证、drf-jwt安装和简单使用、实战之使用Django auth的User表自动签发、实战之自定义User表,手动签发
一 JWT认证 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。 我们不再使用Session认证机制,而使用Json Web Token(本质就是token)认证机制。Json web token (JWT), 是为了在网络应用环境…...
conda常用命令及问题解决-创建虚拟环境
好久没写博文了,感觉在学习的过程中还是要注意积累与分享,这样利人利己。 conda包清理,许多无用的包是很占用空间的 conda clean -p //删除没有用的包 conda clean -y -all //删除pkgs目录下所有的无用安装包及cacheconda创建虚拟环境…...
严选算法模型质量保障
在算法模型整个生命周期**(算法模型生命周期:初始训练数据 --> 模型训练 --> 模型评估 --> 模型预估 --> 训练数据)**中,任何环节的问题引入都可能导致算法模型质量问题。所以我们在做模型质量保障的过程中࿰…...
学习Bootstrap 5的第七天
目录 徽章 徽章 实例 上下文徽章 实例 胶囊徽章 实例 元素内的徽章 实例 进度条 基础进度条 实例 进度条高度 实例 彩色进度条 实例 条纹进度条 实例 动画进度条 实例 混合色彩进度条 实例 徽章 徽章 在 Bootstrap 中,徽章(Badg…...
VirtualBox(内有Centos 7 示例安装)
1常见概念以及软件安装 1.1 虚拟化技术: 虚拟化技术指的是将计算机的各种硬件资源加以抽象、转换、分割,最后组合 起来的技术。其目的和作用主要是打破硬件资源不可分的情况,方便程序员自 己集成所需资源。 1.2 Virtual Box 其是虚拟化技术作…...
在 Git 中删除不再位于远程仓库中的本地分支
git 删除远端已经被删除然而本地还存在的分支 1. 修剪不在远程仓库上的跟踪分支 git remote prune origin如果git仓库将branch1被删除,可以用用git remote prune origin删除在本地电脑上的remotes/origin/branch1 git remote show origin可以看到下面所示…...
容器编排学习(九)服务管理与用户权限管理
一 service管理 1 概述 容器化带来的问题 自动调度:在 Pod 创建之前,用户无法预知 Pod 所在的节点,以及 Pod的IP 地址一个已经存在的 Pod 在运行过程中,如果出现故障,Pod也会在新的节点使用新的IP 进行部署应用程…...
【C刷题】day1
一、选择题 1.正确的输出结果是 int x5,y7; void swap() { int z; zx; xy; yz; } int main() { int x3,y8; swap(); printf("%d,%d\n",x, y); return 0; } 【答案】: 3,8 【解析】: 考点: ÿ…...
zabbix配置钉钉告警、和故障自愈、监控java
文章目录 1.配置钉钉告警server 配置web界面创建媒介给用户添加媒介测试告警 实现故障自愈功能监控Javazabbix server 安装java gateway配置 Zabbix Server 支持 Java gateway使用系统内置模板监控 tomcat 主机 1.配置钉钉告警 server 配置 钉钉告警python脚本 脚本1 cd /…...
第九章 Linux实际操作——Linux磁盘分区、挂载
第九章 Linux实际操作——Linux磁盘分区、挂载 9.1 Linux分区9.1.1原理介绍9.1.2 硬盘说明9.1.3 查看所有设备搭载情况 9.2 挂载的经典案例9.2.1 说明9.2.2 如何增加一块硬盘9.2.3 虚拟机增加硬盘步骤 9.3 磁盘情况查询9.3.1 查询系统整体磁盘使用情况9.3.2 查询指定目录的磁盘…...
设计模式-解释器设计模式
文章目录 前言一、 解释器模式的结构1、抽象表达式(Abstract Expression)2、终结符表达式(Terminal Expression)3、非终结符表达式(Non-terminal Expression)4、上下文(Context)5、客…...
实现 js 中所有对象的深拷贝(包装对象,Date 对象,正则对象)
通过递归可以简单实现对象的深拷贝,但是这种方法不管是 ES6 还是 ES5 实现,都有同样的缺陷,就是只能实现特定的 object 的深度复制(比如数组和函数),不能实现包装对象 Number,String ࿰…...
PathVariable注解
postman测试传参:http://localhost:8080/admin/employee/2 PathVariable PathVariable注解用法和作用...
宋浩高等数学笔记(十二)无穷级数
完结,宋浩笔记系列的最后一更~ 之后会出一些武忠祥老师的错题&笔记总结,10月份就要赶紧做真题了...
使用Clipboard插件实现Vue的剪贴板功能
在Web开发中,剪贴板功能是一个常见但又非常有用的功能。通过将数据复制到剪贴板,用户可以方便地将数据粘贴到其他应用程序或网站上。在本文中,我们将介绍如何使用Clipboard插件结合Vue框架实现剪贴板功能。 Clipboard插件简介 Clipboard插件…...
Latex参考文献中大写字母编译后自动变成了小写,如何保持原字母大写形式
一、问题 1.1 bib文件原有内容 以下参考文献中MANET为大写 inproceedings{Miao2013FullySK, title{Fully Self-organized Key Management Scheme in MANET and Its Applications}, author{Fuyou Miao and Wenjing Ruan and Xianchang Du and Suwan Wang}, year{2013} } …...
Jest单元测试相关
官方文档:jest 中文文档 1、模拟某个函数,并返回指定的结果 使用Jest测试JavaScript(Mock篇) 有这样一个需求,mock掉Math.random方法(0(包括)~1之间),使其返回指定的0…...
Scrum敏捷开发流程及关键环节
Scrum是一种敏捷开发流程,它旨在使软件开发更加高效和灵活。Scrum将软件开发过程分为多个短期、可重复的阶段,称为“Sprint”。每个Sprint通常为两周,旨在完成一部分开发任务。 在Scrum中,有一个明确的角色分工: 产…...
微服务04-Gateway网关
作用 身份认证:用户能不能访问 服务路由:用户访问到那个服务中去 负载均衡:一个服务可能有多个实例,甚至集群,负载均衡就是你的请求到哪一个实例上去 请求限流功能:对请求进行流量限制,对服务…...
YOLOV7改进-针对小目标的NWD(损失函数)
link 1、复制这些 2、utils-loss,这里加 3、把这几行复制到utiils的loss.py 4、先对CoputerLoss类做修改 5、把那一行替换成这个 6、修改 7、iou_ration是超参,可以调,如果小目标比较多的话,这个值可以低一些,…...
深圳网站建设黄浦网络-骗子/图片百度搜索
第二章 第二章我学习的线性表,听名字就很抽象,所以自然很难学。但是学完之后才发现,这真的很难学!我们学习了顺序表和链表,从字面上就可以看出来,这两个表还是有区别的。这两种表都有各自的优缺点。 顺序表…...
网站怎么做支付/百度收录网址提交
一、Visual Studio安装与插件 可以到官网下载 VS Code 并安装,推荐配置的插件有“ C/C ” ,“ Code Runner ”和中文简体扩展包,安装了 Extensions “C/C” 后就可以使用 Ctrl Shift P 打开命令面板输入“ C/C :编辑配置(UI…...
哪些网站可以找到做海报的素材/百度导航最新版本免费下载
写在前面 是这样的,我们现在接口使用了Ocelot做网关,Ocelot里面集成了基于IdentityServer4开发的授权中心用于对Api资源的保护。问题来了,我们的Api用了SwaggerUI做接口的自文档,那就蛋疼了,你接入了IdentityServer4的…...
暗网网站有那些/网时代教育培训机构官网
方法一: 使用join的方法 >>> " ".join(["A","B","C","D"]) A B C D 方法二: 使用字符串格式化拼接 >>> "%ss age is %d" % ("Jerry", 18) "Jerrys age is 18" >>…...
安徽省经工建设集团网站/郑州seo优化
一、时间函数 在使用存储过程,sql函数的时候,会遇到一些对时间的处理。比如时间的获取与加减。这里就用到了sql自带的时间函数。下面我列出这些函数,方便日后记忆,使用。 --getdate 获取当前时间select getdate()--dateadd 原有时…...
无锡企业网站建设/推广关键词如何优化
ls /bin /usr/bin | sort | uniq | less 上面这条命令的实际效果是: 获得 ls /bin /usr/bin 的 output将上述 output 进行 sort (排序),并去掉重复项 (uniq)将经过以上处理的 output 作为 less 命令的 input,输出在屏幕上相反地,如…...