首页 文章 精选 留言 我的

精选列表

搜索[工具模块],共10000篇文章
优秀的个人博客,低调大师

Istio 1.5.4 发布,大型微服务系统管理工具

Istio 先后发布了 1.5.3和 1.5.4 版本。Istio 是一个由谷歌、IBM 与 Lyft 共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。具体来说,Istio 是一个开源服务网格平台,它确保微服务在处理故障时以指定的方式相互连接。 1.5.3版本包含以下错误修复程序: 修复了 Helm 安装程序使用动态生成的签名密钥安装 Kiali 的问题 修复了将生成的 Kubernetes 资源与用户定义的叠加层叠加在一起的附加组件 修复了istio-sidecar.deb无法通过iptables默认nftables设置在 Debian Buster 上启动的问题 修复了在DestinationRule.trafficPolicy.loadBalancer.consistentHash.httpHeaderName中指定的标头名称更改后,相应的哈希策略未更新的问题 修复了在 istio-system 以外的名称空间中部署时的流量路由 但由于发布疏漏,1.5.3 镜像不包含本应有的 CVE-2020-10739 修复程序,官方建议升级至 1.5.4 版本。 1.5.4 版本包含以下安全更新: ISTIO-SECURITY-2020-005 启用遥测 V2 时拒绝服务 CVE-2020-10739:通过发送特制数据包,攻击者可能会触发 Null Pointer 异常,从而导致拒绝服务。 发布公告:https://istio.io/news/releases/1.5.x/announcing-1.5.4/

优秀的个人博客,低调大师

使用Chrome开发者工具研究JavaScript里函数的原生实现

As the size of my blog Chrome Development Tool tips used in my daily work turns to be larger I create a separate post to record down this small tip.Are you curious about the “native code” here? At least I am. Today I find that the Profiles tab in Chrome development tool can help us to unveil the mysteries to some degree.In Chrome development, just select this checkbox: And then execute the simple JavaScript code below: var arr = []; for (var i=0; i<1000; i++){ arr.push(i) } console.profile("Array toString"); for( var i = 0; i < 1000; i++){ var a = arr.toString(); } console.profileEnd("Array toString"); Once done, you can see a profile record with the name specified in JavaScript code above, “Array toString”. Hover the mouse to the first row, “anonymous function”, we find the hint “array.js”. Switch display style from Chart to Tree: From here the callstack of native implementation of toString is displayed: The next step is to look into in array.js.Launch url: https://cs.chromium.org/Click this hyperlink: now you can find the array.js file via path: src/v8/src/js/array.js The callstack analyzed through the source code exactly matches the one we get in Chrome development tool Profile tab:ArrayToString will delegate to Join if current caller is an Array: Join will call DoJoin: DoJoin will first call UseSparseVariant to evaluate the possibility to perform Join via SparseVariant. If not possible, call ConvertToString as fall back. ( The line number of source code may vary with the one you see in Chrome Development Tool profile tab due to the different version of Chrome being used. ) If you could not tolerate the poor performance of this online source code repository, you could download the whole source code of V8 to your local laptop by cloning this github repository:https://chromium.googlesource.com/v8/v8.git/ 本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

优秀的个人博客,低调大师

使用Chrome开发者工具研究JavaScript的垃圾回收机制

I use the following simple JavaScript code to illustrate: var JerryTestArray = []; (function(){ for( var i = 0; i < 100; i++){ JerryTestArray[i] = document.createElement("div"); } })(); Create a new empty tab in your Chrome, and first create a snapshot with empty heap status by click “Take Snapshot” button: The Snapshot1 is generated. Now switch to tab Console, paste the JavaScript code and execute it in console. And switch to Profiles tab again to make the second snapshot: Once done, select the second snapshot, choose “Comparison” and “Snapshot1” as filter: We can find out from column “New” that 100 div nodes are created as we expect. Since these nodes are not appended to document node so they are invisible to end user, so displayed as “Detached DOM”. The JerryTestArray still holds the reference to each div node so Garbage collector will not touch these nodes. In order to make Garbage collector recycle the memory occupied by these nodes, just assign another value to JerryTestArray in console: Once done, make the third snapshot and compare it with the second. Now we can find that the re-assignment to JerryTestArray will trigger the destruction of those 100 div nodes by Garbage collector: Meanwhile, the string we use in assignment could also be inspected via the combination of filters below: There is another kind of profile in Chrome development tool which can give you an overview about timeline of memory allocation: Click Start button in above screenshot, and paste the following code in console and executed: var JerryTestArray = []; (function(){ for( var i = 0; i < 98; i++){ JerryTestArray[i] = document.createElement("span"); JerryTestArray[i].className = "JerryClassName" + i; } })(); After the code is executed, paste the following code and execute: JerryTestArray[30] = "this is a long test............................end"; Now stop the profile. The profile is displayed as below. The highlighted vertical blue line indicates the timeslot when the 97 Span elements are created. Note that the number of Span elements displayed here is not 98 but 97 since Chrome development tool displays the final status of objects after “stop profile” button is clicked ( the reference to 30th Span element is replaced by String, so it is recycled by GC ). You can drag the two vertical bars to define the time range between which you would like to inspect. For example the time range below contains the timeslot when the below assignment occurs: JerryTestArray[30] = "this is a long test............................end"; With this gained knowledge now we can check the memory allocation and destruction in some real application. For example click tile “My Tasks” to enter this application, make the first snapshot and click back button within application to return to launchpad, and make the second snapshot and review the comparison result. From the result we find out lots of stuff are deleted after we return to launchpad: Hover your mouse to a given destructed object and you can review its detail: For more tips How I use Chrome development tool in my daily work, please refer to this blog Chrome Development Tool tips used in my daily work 本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

优秀的个人博客,低调大师

Istio 1.5.2 发布,大型微服务系统管理工具

Istio 1.5.2 发布了。Istio 是一个由谷歌、IBM 与 Lyft 共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。具体来说,Istio 是一个开源服务网格平台,它确保微服务在处理故障时以指定的方式相互连接。 新版本主要更新内容包括: 修复:Istiod 部署缺少匹配 PodDisruptionBudget 使用的标签 修复:使用 istioctl 进行自定义 Istio 安装无法通过外部图表使用 修复:通过向stdErr发送警告来记录验证 修复:当用于IstioOperator API的外部Prometheus链接时,Kiali无法正常工作 修复:IstioOperator 切片验证 修复:由于默认的excludeInboundPort配置不包括端口15090,因此在CNI注入的Pod中Prometheus抓取失败 改进:添加注释以设置 Sidecar 上的 CPU/内存限制 改进:默认情况下启用 rewriteAppHTTPProbe 注释 更多内容见更新说明: https://istio.io/news/releases/1.5.x/announcing-1.5.2/

优秀的个人博客,低调大师

smart-license v1.0.3 发布,为软件提供授权的工具

smart-license 是一款用于安全加固的开源项目。 主要服务于非开源产品、商业软件、具备试用功能的付费软件等,为软件提供授权制的使用方式。 名词解释: License:通过 smart-license 生成的授权文件,导入至要授权使用的软件产品中。 源数据:需要进行 License 加工处理的基础数据。例如,将软件产品运行的配置文件作为源数据,经由 smart-license 授权处理后生成 License 文件。 License源文件:生成 License 的同时,会自动产生一份文件用于记录:源数据,授权时间,过期时间,秘钥对等信息。由软件授权方持有,当客户遗失 License 文件之后可以根据License源文件重新生成 License。 更新说明: 修复:生成的License源文件日期格式化异常问题。 新增:运行时过期策略接口RuntimeExpireStrategy。用户可自由实现软件运行期间触发过期的应对策略,日志告警或退出程序皆可。 License license = new License(); license.setExpireStrategy(new RuntimeExpireStrategy() { @Override public void expire() { System.exit(1); } }); license.loadLicense(); 新增:根据License源文件重新生成License。具体操作见README.MD 新增:提供Windows环境的运行脚本:keypair.bat、license.bat、license_revert.bat 适用场景: 非开源产品、商业软件、收费软件。 限制产品的传播性,每个客户拥有专属 License。 同一款软件发行包根据 License 的不同提供不同的服务能力。 限定软件授权时效 产品特色: 开源,代码完全公开,License的生成原理是透明的。 易用,提供二进制包,直接基于命令行生成 License。 安全,生成的 License 在一定程度上具备防篡改能力,破解难度大。 安全加固,采用非对称加密方式对 License源数据进行预处理,防止伪造License。

优秀的个人博客,低调大师

Istio 1.5.1 发布,大型微服务系统管理工具

Istio 1.5.1发布了。Istio 是一个由谷歌、IBM 与 Lyft 共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。具体来说,Istio 是一个开源服务网格平台,它确保微服务在处理故障时以指定的方式相互连接。 新版本主要更新内容包括: Security update ISTIO-SECURITY-2020-004Istio 对 Kiali 使用硬编码的 signing_key CVE-2020-1764:Istio 使用默认的签名密钥来安装 Kiali。这可以使有权访问 Kiali 的攻击者绕过身份验证并获得 Istio 的管理特权。此外,此版本中还修复了另一个 CVE 漏洞。 其他 修复了 Istio Operator 实例删除因集群内运算符而挂起的问题 修复了 “istioctl manifest apply –set” 中对数组表示法的不完全支持 在 Kubernetes 服务规范中添加向服务添加注释的可能性 将 istiod 端口添加到网关以进行网格扩展 添加选项以启用遥测 V2 的 V8 运行时 在 istio-agent 上支持自定义 CA 修复:使用 istioctl 或 Helm 进行部署时,始终会生成用于混合器遥测的自动定标器 更多详情见更新说明: https://istio.io/news/releases/1.5.x/announcing-1.5.1/

优秀的个人博客,低调大师

smart-license v1.0.1 发布,为软件提供授权的工具

smart-license 是一款用于安全加固的开源项目。 主要服务于非开源产品、商业软件、具备试用功能的付费软件等,为软件提供授权制的使用方式。 名词解释: License:通过 smart-license 生成的授权文件,导入至要授权使用的软件产品中。 源数据:需要进行 License 加工处理的基础数据。例如,将软件产品运行的配置文件作为源数据,经由 smart-license 授权处理后生成 License 文件。 License源文件:生成 License 的同时,会自动产生一份文件用于记录:源数据,授权时间,过期时间,秘钥对等信息。由软件授权方持有,当客户遗失 License 文件之后可以根据License源文件重新生成 License。 更新说明: 虽然通过 smart-license 生成的 License 具备防篡改的能力, 但对于有着一定技术功底的用户,依旧可以采用某些手段获得 License 的源数据, 再通过 smart-license 伪造一份"合法"的 License 。 为此需要提供一种安全加固策略,防止某些不怀好意的人过于轻松的突破 License 的安全防线。 加固的原理如下图所示,生成License阶段采用非对称加密方式对源数据进行预处理。 而在程序运行时从License中提取到的是密文形式的源数据,需要通过公钥解密还原真实内容。 软件提供商大可将公钥硬编码至程序中,即便通过反编译获得公钥,也无法以此伪造 License。 再则可在程序中引入代码混淆机制,增加反编译的破解难度,强化软件的安全系数。 适用场景: 非开源产品、商业软件、收费软件。 限制产品的传播性,每个客户拥有专属 License。 同一款软件发行包根据 License 的不同提供不同的服务能力。 限定软件授权时效 产品特色: 开源,代码完全公开,License的生成原理是透明的。 易用,提供二进制包,直接基于命令行生成 License。 安全,生成的 License 在一定程度上具备防篡改能力,破解难度大。 安全加固,采用非对称加密方式对 License源数据进行预处理,防止伪造License。 案例: 现有一款非开源项目已接入smart-license:《smart-proxy:信息通信网与公共网络单向数据传输解决方案》,诚邀各位技术极客前来破解。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册