• [数据安全] 常见web漏洞——SQL注入漏洞
    SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。通常情况下,SQL注入的位置包括:(1)表单提交,主要是POST请求,也包括GET请求;(2)URL参数提交,主要为GET请求参数;(3)Cookie参数提交;(4)HTTP请求头部的一些可修改的值,比如Referer、User_Agent等;(5)一些边缘的输入点,比如.mp3文件的一些文件信息等。常见的防范方法(1)所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。(2)对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换。(3)确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。(4)数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。(5)网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。(6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。(7)避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。(8)在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。
  • [技术干货] 华为云平台web在线开发没有创建应用
    如图 495020
  • [问题求助] 【智慧园区产品】【福建党校3D地图对接功能】IOC使用基线的3D SDK,如何在前端获取展示3D BIM模型,是需要通过GIS
    【功能模块】IOC使用基线的3D SDK,如何在前端获取展示3D BIM模型,是需要通过GIS BO配置参数,还是直接通过SDK就可以如果需要GIS BO配置参数,都需要GIS厂家提供哪些参数信息【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • web安全测试工具推荐
    1.appscan,算是用的非常多的一款工具了,扫描后能够将绝大部分的漏洞找出来。2.Netsparker Community Edition 这个程序可以检测SQL注入和跨页脚本事件,并且还能提供解决方案3.Websecurify 这是个简单易用的开源工具,此程序还有一些人插件支持,可以自动检测网页漏洞。运行后可生成多种格式的检测报告4.Wapiti 这是一个用Python编写的开源的工具,可以检测网页应用程序,探测网页中存在的注入点。5.N-Stalker Free Version 此工具可一次检测100个以上的页面,包括跨页脚本的检测。6.skipfish 这是一个轻量级的安全测试工具,处理速度很快,每秒可处理2000个请求。7.Scrawlr HP的一款免费软件,可检测SQL注入漏洞。8.Watcher: 这个是Fiddler的插件,可在后台静默运行,可检测跨域提交等。9.WebScarab 这个实际上是一个代理软件,有很多功能,可以检测XSS跨站脚本漏洞、SQL注入漏洞等。10.抓包工具:fiddler,charles11.burpsuite:暴力破解、抓包工具
  • [问题求助] 【IVS3800】关于IVS V200R019C50前端接入的问题
    【功能模块】最近在做一个涉及视频监控的项目,采用的是IVS3800,目前调研后端那边返回的是rtsp视频流协议,想问下针对前端对于视频监控播放这块有没有相关的sdk插件(华为的)
  • web安全测试工具
    金融服务和银行业一直是安全漏洞的受害者,因为会破坏了大量敏感的用户数据。然而,金融服务是每个人的必备品。所以在这里我们列出了一些安全测试工具,用于构建一个健壮的应用程序。1,appscan,算是用的非常多的一款工具了,扫描后能够将绝大部分的漏洞找出来。2,Netsparker Community Edition 这个程序可以检测SQL注入和跨页脚本事件。牛逼的是还能提供解决方案3,Websecurify 这是个简单易用的开源工具,此程序还有一些人插件支持,可以自动检测网页漏洞。运行后可生成多种格式的检测报告4,Wapiti 这是一个用Python编写的开源的工具,可以检测网页应用程序,探测网页中存在的注入点。5,N-Stalker Free Version 此工具可一次检测100个以上的页面,包括跨页脚本的检测。6,skipfish 这是一个轻量级的安全测试工具,处理速度很快,每秒可处理2000个请求。7,Scrawlr HP的一款免费软件,可检测SQL注入漏洞。8,Watcher: 这个是Fiddler的插件,可在后台静默运行,可检测跨域提交等。。9,WebScarab 这个实际上是一个代理软件,有很多功能,可以检测XSS跨站脚本漏洞、SQL注入漏洞等。。10,抓包工具:fiddler11、burpsuite:暴力破解、抓包工具
  • [问题求助] 【NB-IoT】【web应用】怎么将NB-IoT(CoAP协议)传到云平台的数据传到自己的web应用上?
    我现在已经实现传感器的数据可以在云平台上显示,现在是需要自己做一个web应用,然后将数据传到自己的web应用上,具体要怎么操作呢?我了解到的是以前的那个 IoTStudio可以快速构建WEB端应用直接可视化的将数据显示出来,现在这个要退市了,我想着是能自己写web应用,再将数据传到自己的web应用上面。web应用还没有做,只实现了数据可以传到云平台上,现在我比较蒙,我现在要怎么弄,不知道要怎么操作?
  • [热门活动] 【有奖征文】WEB前端大作战,走在技术最前端!
    近几年大家对于WEB前端的关注度很高,比如整体势头发展良好,各种技术百花齐放,人才稀缺,随着互联网的发展,用户对前端体验的要求也越来越高,无码化、智能化、沉浸式体验、多端联动......对于前端工程师来说,综合素质显得越来越重要。So,华为云社区设置了本次【WEB前端大作战】有奖征文,想邀请关注前端开发的你,投稿分享你在前端领域的积累,为自己,也为技术发声。我们会把收到的优质内容汇编成册,并注明原作者,开放给圈内开发者下载查阅,提供实践参考。同时,在华为云站内外10+个技术社区醒目位置进行推荐,给与百万级流量资源。希望最终的这份《华为云WEB前端大作战》精选集,有你的署名。对于贡献优质内容的作者,我们还将送出机械键盘,华为音箱等各项大礼!你,准备好了吗? 01 .活动流程介绍 02. 活动奖品及评奖规则2.奖励奖品评选依据 :文章投票数*50%+专家评审打分*50%投票流程 :5月6日截稿后评审会选出20篇最优秀的文章到论坛进行投票。投票链接 :5月10日开启投票,更新投票链接。专家评分依据 :文章篇幅、技术含金量、排版美观度、阅读量、点赞、收藏等指标综合评分其他说明 :“阳光普照奖”及“投票抽奖”奖项不能与其他奖项叠加,以上所有奖项可以与云社区“云驻计划”激励叠加。 点击了解云驻计划.03. 征文规则说明01 )   征文内容:与Web前端相关的技术文章,例如“框架运维和算法,设计Node可视化...”可以是你结合自身业务场景的技术实践,或是对于前端新技术趋势的看法,也可以是你攻克某个前端难题的经验分享…总之,一切原创的技术观点,我们都是欢迎的! 02 )   投稿细则:1、文章内容需体现技术看点,图文并茂,字数不少于500字;2、文章需要发表在社区博客;  是时候展现真正的技术了, 点击前往发布标题以 【WEB前端大作战】结尾,例如:前端的自动化重构丨【WEB前端大作战】。文章末尾需加上活动名称及链接地址:【WEB前端大作战】火热进行中:https://bbs.huaweicloud.com/blogs/255890文章要求为投稿人原创,凡转载或抄袭一经发现将取消参赛资格;文章须在华为云社区为首发,如华为云平台已有文章内容则视为稿件无效;稿件投稿后,华为云拥有该稿件的使用权、改编权等。.04. 部分前端细分领域及参考文章(仅供参考,征文内容包括但不限于以下领域)客户端    基于mui的H5套壳APP开发web框架 WEB端    【从0开始Web开发实战】Spring Boot集成WebSocket,详细代码手把手操作 框架类    TS 加持的 Vue 3,如何帮你轻松构建企业级前端应用 React 还是 Vue: 你应该选择哪一个Web前端框架? 前端运维    2020成绩单:前端脚手架的开发思路与实现 智联招聘的微前端落地实践——Widget  算法    前端面试的数据结构与算法 设计模式    react/vue中的设计模式node    nodejs中的并发编程nodejs学习——http-server快速搭建前端应用 可视化搭建    前端可视化框架是怎样炼成的? 面试类    前端大佬推荐:261页前端面试题宝典,巩固复习  3D图形学    基于WebGL的3D可视化告警系统关键技术解析 ThingJS 是时候秀出你的肌肉了!速来华为云社区博客,一起来前端大作战吧!  点击立即发布 如有任何问题,可添加华为云社区小助手微信号:bbs_huaweicloud,进行沟通咨询。添加微信时请备注:前端大作战+报名活动时使用的华为云昵称。   
  • [技术干货] 一个简单的登录功能怎么设计测试用例?
      现在有一个登录页面,有一个账号和一个密码输入框,一个提交按钮。请问登录功能怎么设计测试用例?  此题的考察目的:  1、了解需求(测什么都是从了解需求开始);  2、是否有设计 Test Case 的能力;  3、是否熟悉各种测试方法;  4、是否有丰富的 Web 测试经验;  5、是否了解 Web 开发。  我们可以跟面试官了解确认需求:  1、登录界面应该是弹出窗口式的,还是直接在网页里面;  2、账号长度和密码的强度(比如需要多少位、大小写敏感、特殊字符混搭等);  3、界面美观是否有特殊要求?(即是否要进行 UI 测试);  4、····  测试用例设计:  测试需求分析完成后,开始用例设计,主要可以从以下几个方面考虑:  一、功能测试(Function Test)  1、输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)  2、输入错误的账号或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验)  3、登录成功后能否跳转到正确的页面。  4、账号和密码,如果太短或者太长,应该怎么处理。(安全性,密码太短时是否有提示)  5、账号和密码,中有特殊字符(比如空格),和其他非英文的情况。(是否做了过滤)  6、记住账号的功能。  7、登录失败后,不能记录密码的功能。  8、账号和密码前后有空格的处理。  9、密码是否加密显示。(星号圆点等)  10、牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用。  11、登录页面中的注册、忘记密码,登出用另一帐号登录等链接是否正确。  12、输入密码的时候,大写键盘开启的时候要有提示信息。  13、什么都不输入,点击提交按钮,看提示信息。(非空检查)  二、界面测试(UI Test)  1、布局是否合理,两个 文本框和一个按钮是否对齐;  2、文本框和按钮的长度,高度是否复合要求;  3、界面的设计风格是否与 UI 的设计风格统一;  4、界面中的文字简洁易懂,没有错别字。  三、性能测试 (Performance Test)  1、打开登录页面,需要几秒;  2 、输入正确的账号和密码后,登录成功跳转到新页面,不超过 5 秒。  四、安全性测试(Security Test)  1、账号和密码是否通过加密的方式,发送给 Web 服务器;  2、账号和密码的验证,应该是用服务器端验证,而不能单单是在客户端用 javaScript 验证;  3、账号和密码的输入框,应该屏蔽 SQL 注入攻击;  4、错误登录的次数限制(防止暴力破解);  5、考虑是否支持多用户在同一机器上登录;  6、考虑同一用户在多台机器上登录。  五、可用性测试(Usability Test)  1、是否可以全用键盘操作,是否有快捷;  2、输入账号,密码后按回车,是否可以登录;  3、输入框是否可以以 Tab 键切换。  六、兼容性测试(Compatibility Test)  1、主流的浏览器下能否显示正常已经功能正常;  2、不同的平台是否能正常工作,比如 Windows, Mac;  3、移动设备上是否正常工作,比如 iPhone, Android;  4、不同的分辨率。
  • Serverless在前端工程化的实践
    为什么要做 Serverless 平台触发这件事情的原因有两部分,第一是趋势,因为前端发展趋势使得前端工程师的工程化效率正在降低,作为基础软件团队,需要思考能否从基础软件层面解决前端的困扰,第二部分是当前前端工程师正面临服务端渲染的问题。首先说趋势,体现在整个前端发展过程中。从以前的 Web 工程师,到前端工程师的职位的出现,当时还只是逻辑分工。第三阶段是前端工程师时代,是一个前后端分离的时代。到我们目前正在处于的前后端(BFF)时代,前端工程师需要去负责部分后端的数据。甚至有些公司已经到了全栈工程师的时代,前端工程师需要负责后端所有的数据。第二阶段和第三阶段,前端人员不需要关心后端资源,只需要把自己的代码写好,由后端或者是运维帮他们去做发布。但是目前所处的阶段,前端人员是需要去关心后端数据的,将来的全栈工程师时代,他们还需要去直接从数据库里边获取 / 操作数据,这个时候我们会发现,他需要操心低层的资源,因为他需要把他的程序跑在服务端的后端,而前端工程师实际上不擅长操作和运维后端资源,因此会使得前端工程师的工程化效率降低。第二点是我们当前正在面临的问题,因为前端工程师目前在做服务端渲染(SSR),采用这个技术的时候他需要自己申请机器,自己部署,同时他还得关注机器的状态,并且他还得时常地翻阅基础设施提供一些运维指南去做运维,其实这个事情是他们很不擅长的,并且对他们来说是一个负担。同时从后端运维的视角来看,前端工程师是在浪费资源。这有两个原因,第一,很多业务属于活动类型的;第二,前端工程师在申请机器的时候,他往往按照上限来预留资源,这就导致了大量的浪费。因此这就产生了“前端工程师在浪费资源”的问题。但其实前端工程师不是故意的,因为他们不擅长运维服务器。因此我们需要解决前端工程师正在面临的痛点。从前端工程师的角度,他们的核心诉求就是只写代码,聚焦核心业务,去创造核心价值,把一些服务端后端运维的事情完全交付给基础设施去做,他们不需要去 care 这个事情。Serverless 的先进理念,其精华正是复杂度转移,使得业务人员能够聚焦他的核心场景,所以我们想打造一款 Serverless 产品,来解决前端工程师当前的困扰。如何打造 Serverless 平台 技术选型打造 Serverless 平台之前,首先要对这个目标做拆解,然后再去做产品选型、技术选型。首先看目标拆解,第一点业务层的需求是即用即上,也就是说前端他想上线一个业务,他不需要去关心太多,他想什么时候上线就可以什么时候上线;第二点就是前端工程师不想去做后端资源的运维;第三点实际上不是前端工程师的需求,而是基础设施层面的一个需求,就是尽量地能支撑好业务,同时也能够省机器省钱。这相对应的目标拆解为:即用即上——需要在技术上具备一键部署的能力;免运维——需要把具体的运维沉淀到基础设施层;节省开支——要求我们这个业务状态相对来说是无状态的,具备高弹性的能力。因此我们的 Serverless 平台要能够集成 CI/CD,同时也能够进行容器化,工作在 Kubernetes 上,具备自动扩缩容的能力。再看产品选型。既然公有云 Serverless 做得这么成熟,我们能否直接采用公有云产品来满足我们业务开发需求?我们的回答是 NO,因为我们需要去满足一些定制化的用户需求,而公有云的 Serverless 产品会受到很多资源包括使用的一些限制;第二个因素是我们的业务存在一些环境依赖,前端所依赖的一些数据库、中间件,都是运行在公司的私有云环境中,这些东西公有云环境上都没有;第三点也是追求技术自由,避免厂商锁定。 所以,我们需要在私有云平台中打造自己的 Serverless 平台。在技术选型上,我们基于三个原因选型了 Knative。底层要基于 Kubernetes: 因为数帆对 Kubernetes 的运维手段比较成熟,本身有大量的业务运行在 Kubernetes 上,我们有专业的团队来做相应的支撑。基于镜像去构建 Serverless: 因为本身的业务是比较灵活多变的,会存在一些程序启动时间比较长的业务,这种业务不是很适合 FaaS。因此我们考虑让它把整个启动过程压缩,通过镜像打包的一种方式来去解决。另外我们还要求易扩展成 FaaS。这些 Knative 都能满足。背景深厚:Knative 后面还有 Google、IBM、Redhat 这些大厂作为支撑。 平台构建轻舟 Serverless 平台设计全景图如下,从下往上有基础设施层、服务层、应用编排层和业务层。其中我们比较关注的是应用编排层和服务层。整个 Serverless 平台工作在已有的基础设施之上,并且我们通过这个 Serverless 平台后端,把它所需要的资源纳入平台组件能力,比如说 CI/CD、Knative API 网关,把这些资源结合起来,满足我们 Serverless 的具体需求。轻舟 Serverless 平台具体的构成,从下图可以看到,Serverless 的核心,我们可以理解成额外做的核心组件,包括一个 Serverless 前端控制台和一个 Serverless 后端。这个核心负责把现有的一些组件联合起来:通过 CI 去完成镜像构建的需求;通过 Knative 去做部署;通过 API 网关去做具体业务的数据链路打通;同时还需要 Gitlab 来存储代码;为了更高的开发效率,需要集成 Web IDE,这样前端开发人员可以只在一个浏览器上就完成他所有的需求;同时为了运维能力,需要去支持平台层面的日志平台,以及监控告警的平台;还需要一些预警,就是 Serverless 跑批和预警的一些组件。轻舟 Serverless 平台在这样的构成下,它具体的流程,我们从业务开发者的视角来看,业务开发者先通过 Web IDE,或者是其他的本地开发工具来完成编码,再把代码 Push 到 GitLab 上去,然后就会触发构建镜像,或者他可以选择手动触发,或者是通过命令行触发。当然这一步也可以把相关的一些资源,降级的静态资源,构建到放到对象存储里面去。Serverless 控制台构建完镜像以后,会通过 Knative 的 Service 去发布这个程序。整个发布过程它会主动地拉取刚才构建的镜像,去做应用的部署和数据链路的打通。这就完成了整个业务的一键部署。一键部署的业务流量模型,首先流量从外网打到外层的基于 Envoy 的 API 网关,API 网关会把流量发给内层的 Knative 网关。随着访问压力的增大,我们要求它能够扩容;而随着资源处在访问的低档期,为了能腾出更多的资源,我们要求它具备缩容的能力。同时这个 Serverless 平台还必须考虑,当这一部分产生了异常的情况下,是否具备降级的能力。我们通过外层的 API 网关去做降级和和静态资源的获取,通过这种方式,如果 Serverless 平台或者 Knative 这一层出了问题,用户可以一键切到已经准备好的静态资源中,不至于让业务产生异常。 产品形态的思考打造 Serverless 平台还有很多必要的考虑。首先平台构建形态方面,为了满足用户的效率需求,我们支持了 FaaS 层平台;为了满足业务复杂又多变的需求,我们支持了传统工程的形态。其中 FaaS 形态最主要的目的是让我们的业务方,特别是前端开发者,可以完全在 Web 浏览器上编码、发布,也就是说他只要身边有一台电脑,通过浏览器就可以随时随地完成他的业务目标,不需要安装一些开发环境。除了这种方式以外,考虑传统使用者的诉求,我们也支持集成到 VS Code 中,同时还支持最传统的通过命令行直接构建 FaaS 的方式,当前我们支持的还只是 Node.js,这个是属于我们用得比较多的技术栈。对于传统工程形态这种方式,Knative 当前是支持的,这种方式最主要的作用是,用户不需要学习新知识就可以直接使用 Serverless,可以像以前一样开发代码,同时它的运营实施比较灵活。一些启动过程很慢的业务,也完全可以采用传统工程形态去做,这样不至于说这类业务没有办法在这个平台上运行。所以说,我们做了这两种产品形态来满足业务方在不同状况下的使用需求。 数据路径的适配因为 Knative 网关只能通过子域名的方式去做业务区分,而我们传统业务,特别是现有的很多线上业务,往往是使用 Host+Path 这种方式去做区分的。为了满足用户的这种使用习惯,我们当然可以修改 Knative 层的开源实现,但是开源又是在不断迭代的,我们考虑再三,做了一些框架结构,通过外置的一层 API 网关去做具体的 Host+Path 的区分,然后转换成 Knative 所支持的子域名方式去做应用区分。同时,我们引入外层的 API 网关还有另一个好处,当 Knative 这一层出问题时,我们可以通过这一层网关去做灰度降级,来保证业务的稳定性。当然,加一层外置网关也会导致数据链路变长,它从外层 API 网关,到内层 Knative 网关,再到 Activator 组件,甚至到 QueueProxy,最后才到业务容器。这样会导致 QPS 比较低,这方面后文我们会给出轻舟团队具体的解决办法。 平台能力的集成平台需要的日志、监控告警、BaaS 等能力,由于轻舟平台已有现成的封装,Serverless 平台直接集成。此外,为了适应 Serverless 这种业务场景,我们额外开发了一个预警的组件,去模拟前端业务方发布一个业务,发布之后把它给部署到 Serverless 平台上,然后检查它能否很好地完成扩缩容。Knative 的实践踩坑和优化接下来分享在打造轻舟 Serverless 平台的过程中,我们对选型的 Knative 这个开源组件所做的事情,主要分为三个部分,第一部分是我们在数据面上做了哪些东西,第二部分是我们在控制面做了哪些优化,第三部分是说使用了 Knative 组件,我们遇到了哪些问题,又是如何解决的。 数据面的优化我们在数据面做的主要工作是数据链路调优。上文也提到 Knative 整个数据链路比较长,我们通过对 Knative 的压测,确定 Knative 的性能有很大的问题。我们通过以下的 5 个步骤来做优化:在整个的数据路径上,把 Activator 从数据路径上去除,因为我们是面向 Web 场景,去除之后不会产生任何业务问题。把 Knative 做升级,从以前的 0.9 升级到 0.14。通过 1 和 2,整个 QPS 提升了大概 50%。为了满足我们一些核心业务对延迟或者是对高性能的需求,我们采用 Fast HTTP 优化了 QueueProxy,把 QueueProxy 的 CPU 使用率降了 50%,同时在降低 CPU 使用率的情况下,它的延迟也降了 30% 左右,QPS 也提升了 30%,也就说使用更少的 CPU,反而带来更多的 QPS 和更低的延迟效果。同时我们做了一个 Revision Deployment 级别的灰度,来降低修改 QeueuProxy 带来的业务风险。在第 3 步优化完 QueueProxy 以后,我们引入了的 Sockops 组件来做框架优化,通过 eBPF 技术实现 QueueProxy 和业务容器之间的 Sidecar 方式的链路优化,QPS 可以在之前的基础上再额外提升 20%,同时延迟降低 8% 左右。针对一些特殊业务需求,我们选型更高性能的容器网络,叫 SR-IOV 网络,来满足它的需求。从我们的实测来看,SR-IOV 容器网络在延迟方面比普通的容器网络大概要降低 10%,同时它的 QPS 是接近物理机的。通过这 5 个步骤,我们满足了不同的业务方的需求。一般来讲,做完 1 和 2 能满足差不多满足一半的业务需求,做完 3 和 4 基本上能满足绝大部分需求,第 5 步是满足一些特殊的业务场景的需求。 控制面的优化控制面上我们主要解决了 Knative ksvc Ready 时间变长的问题。Knative ksvc Ready 时间变长有两个原因。第一个原因是 Serverless Knative 网关,我们采用的是轻舟的 API 网关,它的控制面是依赖于 Pilot,而我们的业务集群又是和服务网格在一起运行的,在默认情况下,Knative 的 Pilot 能感知到服务网格的 VS、DR、SE 这些资源,这就导致了它去做一些无关的资源运算,从而 Knative ksvc Ready 时间变长。第二原因,Knative 有一个组件叫做 network-istio,这个组件需要对整个数据路径去做健康检查,只有在健康检查成功以后它才把 ksvc 置成 Ready 状态。但健康检查有一个特点,它是指数级别回退的,这就导致了如果 5 秒内它没有检查通过,它就只能在 10 秒内才能发现这个东西是健康的;如果它在 10 秒内还没有解决这个问题,检查出来业务已经 Ready 了,它就只能在 20 秒内才能发现业务已经 Ready,这就导致 ksvc Ready 时间变得更长。我们解决的办法有两种,第一种是针对于第一个问题,Knative 网关它只 care 自己的 Namespace 级别的资源,去做一些资源隔离,它不 care 同一个集群内的服务网格的相关的其他资源。第二种就是我们调整了 network-istio 健康检查回退机制,调整成前 20 秒内每秒钟检查一次,20 秒以后才进行指数级回退,通过这种方法防止 ksvc Ready 时间慢的问题。 遇到的困难和解法Knative 层我们主要遇到了如下的困难:Knative 的一个 Autoscaler 组件,它是不支持 HA 的,但是 Knative Autoscaler 组件是扩缩容的核心组件,因此这是业务无法忍受的。一个老生常谈的冷启动问题,我们经过实测,整个的冷启动过程需要 5 秒以上,如果算上拉镜像的时间,甚至可能需要 6~7 秒。做 Knative 适配的时候,和我们内部的容器网络有些冲突,它会导致 Knative 的一些 Webhook 启动失败。适配轻舟 API 网关的时候出现 503 问题。net-isito 组件做完健康检查以后它的连接不会释放,这就导致它的连接大量的堆积,最终导致业务异常。我们的解法如下:针对 Autoscaler 不支持 HA 的问题,我们通过 Pick Knativ0.19 这个版本的一些代码去解决。针对冷启动,我们通过一些预留和一个默认实例来避免冷启动。Webhook 这个问题,最主要是和我们内部容器网络的冲突,我们通过调整网络方式为 hostNetwork 来规避。适配轻舟 API 网关出现 503,最主要也是 Knative 本身的一些问题,因为网关的控制面上存在一些特殊符号,它没有办法识别,这种情况下 0.14 版本的 Network-isito 就没有办法继续往下工作,不过这个问题在 Knative0.15 得到了修复。健康检查连接不释放,这也在 Knative 0.15 得到了解决。当然我们在一开始踩这个坑的时候,Knative 社区还没有解决这些问题,后面我们解决完问题以后,发现社区也已经解决了。所以说我们也是通过检验了,因为我们是尽量地少动 Knative 本身的代码,也是通过这种升级的方式来解决的。    收益    目前轻舟 Serverless 平台在内部已经上线了大概 200 多个前端应用,当然在 2020 年的 Q4 我们也 Release 了一个商业化版本满足对外的需求。我们做完这个事情以后,前端人员的体验是怎么样的呢?首先,我们从前端人员那边收集到的数据,他们以前去部署环境,新员工可能要两周左右,老员工也要三天左右,有了 Serverless 平台,整个部署时间统一降低到三分钟内搞定。其次,因为 Serverless 平台的一些封装使得了前端人员不再需要关注后端资源,所以说他们从业务选型上,可以考虑一些服务端渲染的技术来提升业务的首屏体验。再次,从趋势上来说,免去运维的困扰更加符合前端趋势,这让前端人员可以轻松地去开发 BFF 层的一些需求,甚至可以支撑他们往全栈工程师去过渡,通过这些支持给前端提供一个更大的灵活度。未来展望展望未来,我们需要在公司内部业务场景继续打磨轻舟 Serverless 平台,让它变得更加稳定,功能更加强大,主要聚焦三个方面:首先我们会提升 Serverless 平台的产品能力,考虑使用 Knative 的 Eventing 组件,去融合我们的轻舟中间件、对象存储这些底层设施的资源,来满足业务更加多变的需求。其次是我们 Serverless 平台上线以后,前段时间业务方反馈它整个的调试化过程的效率降低了,所以我们打算提供一些本地的调试套件去解决调试的困扰。最后,我们会紧跟着 Knative 社区,关注 Knative FaaS Kn 的实现,同时也考虑去对接公有云的一些 Serverless Framwork,一些 API 规范标准,这样将来如果业务方有需求,它完全可以无感地从私有云平台上迁到公有云平台上,所以我们打算做这么一层封装。
  • [问题求助] ABC前端运行包问题
    【功能模块】发布---》下载前端运行包【操作步骤&问题现象】1、在下载中的运行其中的HTML文件,没有ABC开发的左侧的导航栏组件。2、在本地nginx代理,访问页面有一个接口报错,这个接口在文件中没有找到。并且另一个请求获取列表的接口没有请求。       疑问:在ABC环境中可以正常请求,打包成的前端代码包中的请求,需要用原生服务开放出来?【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] 渗透测试流程
      渗透测试流程:  1.明确目标  2.分析风险,获得授权  3.信息收集  4.漏洞探测(手动&自动)  5.漏洞验证  6.信息分析  7.利用漏洞,获取数据  8.信息整理  9.形成报告  大致可分为三个阶段:信息收集、漏洞发现以及漏洞利用  1.明确目标  1)确定范围:测试的范围,如:IP、域名、内外网、整站or部分模块。  2)确定到规则:能渗透什么程度(发现漏洞为止or继续利用漏洞)、时间限制、能否修改上传、能否提权...  ·目标系统介绍、重点保护对象及特性。  ·是否允许数据破坏?  ·是否允许阻断业务正常运行?  ·测试之前是否应当知会相关部门接口人?  ·接入方式?外网和内网?  ·测试是发现问题就算成功,还是尽可能的发现多的问题?  ·渗透过程是否需要考虑社会工程?  3)确定需求:web应用的漏洞(新上线程序)?业务逻辑漏洞(针对业务的)?人员权限管理漏洞(针对人员、权限)?  根据需求和自己技术能力来确定能不能做、能做多少。  2.分析风险,获得授权  分析渗透测试过程中可能产生的风险,如大量测试数据的处理、影响正常业务开展、服务器发生异常的应急、数据备份和恢复、测试人力物力成本...  由测试方书写实施方案初稿并提交给客户(or本公司内部领导)进行审核。在审核完成后,从客户(or本公司内部领导)获取对测试方进行书面委托授权书,授权测试方进行渗透测试。  3.信息收集  在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等。  方式:主动扫描;开放搜索。  开放搜索:利用搜索引擎获得后台、未授权页面、敏感url。  基础信息:IP,网段,域名,端口系统信息:操作系统版本应用信息:各端口的应用,例如web应用,邮件应用等版本信息:所有探测到的版本服务信息:服务器类型、版本人员信息:域名注册人员信息,web应用中网站发帖人的id,管理员姓名等防护信息:试着看能否探测到防护设备。  4.漏洞探测(手动&自动)  利用上一步中列出的信息,使用相应的漏洞检测。  方法:  1)漏扫:AWVS、AppScan...  2)结合漏洞去exploit-db等位置找利用。  3)在网上寻找验证POC。  内容:  系统漏洞:系统没有及时打补丁。  Websever漏洞:Websever配置问题。  Web应用漏洞:Web应用开发问题。  其它端口服务漏洞:各种21/8080(st2)/7001/22/3389  通信安全:明文传输,token在cookie中传送等。  5.漏洞验证  将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验,成功后再应用于目标中。  ·自动化验证:结合自动化扫描工具提供的结果。  ·手工验证:根据公开资源进行验证。  ·试验验证:自己搭建模拟环境进行验证。  ·登录猜解:有时可以尝试猜解一下登陆口的账号密码等信息。  ·业务漏洞验证:如发现业务漏洞,要进行验证。  ·公开资源的利用。  6.信息分析  为下一步实施渗透做准备:  ·精准攻击:准备好上一步探测到的漏洞exp(漏洞利用),用来精准攻击。  ·绕过防御机制:是否有防火墙等设备,如何绕过。  ·定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标。  ·绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)。  ·攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等。  7.利用漏洞,获取数据  ·实施攻击:根据前几步的结果,进行攻击。  ·获取内部信息:基础设施(网络连接,vpn,路由,拓扑等)。  ·进一步渗透:内网入侵,敏感目标。  ·持续性存在:一般对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等。  ·清理痕迹:清理相关日志(访问,操作),上传文件等。  8.信息整理  ·整理渗透工具:整理渗透过程中用到的代码,poc,exp等。  ·整理收集信息:整理渗透过程中收集到的一切信息。  ·整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息。  目的:为了最后形成报告,形成测试结果使用。  9.形成报告  ·按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告。  ·补充介绍:要对漏洞成因,验证过程和带来危害进行分析。  ·修补建议:当然要对所有产生的问题提出合理高效安全的解决办法。
  • [问题求助] cse集成springboot web后开启TLS通信不生效
    cse集成springboot web功能,rest.address端口号和server.port保持一致。配置TLS通信,rest.address改成0.0.0.0:8080?sslEnabled=true。这时候打开页面,不管是访问静态资源还是访问后台接口还是走的http才能请求通过,而不是通过https,有没有大神指导下是什么原因
  • 鲲鹏+麒麟V10上tomcat部署web应用报No Java compiler错误
    部署环境:鲲鹏920服务器操作系统:银河麒麟V10JDK:OpenJDK 1.8.0_242问题:如果用麒麟或者欧拉的yum源安装tomcat 9.0,在tomcat主目录的lib目录下面,会缺少一个jar包ecj-4.13.jar,如果部署了传统Servlet Web应用,在系统运行时,会报如下错误:解决方法:1、在tomcat官网下载.tar.gz压缩包,然后解压后配置,会发现lib目录下面有这个jar包,再重新部署应用,即可正常访问。2、在应用的maven pom文件中增加这个依赖,重新编译构建打包,然后部署应用就可以正常访问
  • [问题求助] 设施管理app 设备关联关系设置, 设备关联摄像头在前端被限制只能4个, 需要更改为20个
    【功能模块】设施管理app 设备关联关系设置, 设备关联摄像头在前端被限制只能4个, 需要更改20个但是更改后无法提交保存, 原因为:不能上传svg【截图信息】【日志信息】(可选,上传日志内容或者附件)
总条数:671 到第
上滑加载中