首页 文章 精选 留言 我的

精选列表

搜索[多重签名],共7514篇文章
优秀的个人博客,低调大师

🔥 Solon Web 的“分身术”:单应用多端口监听,化身多重服务

一、概述 常规 Solon Web 应用通常采用单一端口提供服务。然而在实际业务场景中,我们往往需要单个应用具备"多面服务"能力:在不同端口上提供功能完全独立的服务模块。 典型应用场景: 外部 API 服务 + 内部监控端口:对外提供业务接口,对内提供运维监控 用户前台系统 + 管理后台系统:同一应用同时服务终端用户和运营管理 多租户隔离服务:不同端口服务不同客户群体,实现逻辑隔离 二、场景示例 以电商平台开发为例,我们需要在同一应用中集成: 服务类型 端口 核心功能 用户端服务 8082 商品浏览、购物车管理、订单处理 管理端服务 8083 商品管理、订单管理、数据统计 两套服务功能逻辑完全独立,但需要共享应用部署资源。 三、技术实现方案 采用多端口方式。多端口有个好处,不同端口可以采用不同的运维策略。 1. 多端口配置 配置主端口(app.yml): server.port: 8082 #用户端服务 动态添加管理端口: import org.noear.solon.Solon; import org.noear.solon.annotation.SolonMain; import org.noear.solon.server.http.HttpServerConfigure; @SolonMain public class App { public static void main(String[] args) { Solon.start(App.class, args, app -> { app.onEvent(HttpServerConfigure.class, config -> { config.addHttpPort(8083); // 添加管理端服务端口 }); }); } } 2、端口级访问控制 通过过滤器实现基于端口的访问权限控制: import org.noear.solon.annotation.Component; import org.noear.solon.core.handle.Context; import org.noear.solon.core.handle.Filter; import org.noear.solon.core.handle.FilterChain; @Component(index = -1) // 高优先级过滤器 public class PortBasedFilter implements Filter { private static final int USER_PORT = 8082; private static final int ADMIN_PORT = 8083; @Override public void doFilter(Context ctx, FilterChain chain) throws Throwable { int currentPort = ctx.localPort(); if (currentPort == ADMIN_PORT) { handleAdminRequest(ctx); } else if (currentPort == USER_PORT) { handleUserRequest(ctx); } else { ctx.status(403).output("Forbidden: Invalid access port"); return; } chain.doFilter(ctx); } private void handleUserRequest(Context ctx) { // 用户端路径验证 if (!ctx.pathNew().startsWith("/api/user/")) { ctx.status(401).output("Unauthorized: User API required"); return; } validateUserRequest(ctx); } private void handleAdminRequest(Context ctx) { // 管理端路径验证 if (!ctx.pathNew().startsWith("/api/admin/")) { ctx.status(401).output("Unauthorized: Admin API required"); return; } validateAdminRequest(ctx); } private void validateUserRequest(Context ctx) { // 用户端请求验证逻辑 String userAgent = ctx.userAgent(); if (userAgent == null || userAgent.trim().isEmpty()) { throw new SecurityException("Invalid user request: User-Agent required"); } } private void validateAdminRequest(Context ctx) { // 管理端身份验证 String token = ctx.header("Authorization"); if (token == null || !token.startsWith("Bearer ")) { throw new SecurityException("Admin authentication required"); } // Token 验证逻辑 if (!isValidAdminToken(token.substring(7))) { throw new SecurityException("Invalid admin token"); } } private boolean isValidAdminToken(String token) { // 实现具体的 Token 验证逻辑 return token != null && token.length() > 10; } } 3、模块化控制器设计 用户端控制器: import org.noear.solon.annotation.*; @Controller @Mapping("/api/user") public class UserController { @Get @Mapping("/products") public String getProducts() { return "User Products API"; } @Post @Mapping("/cart") public String addToCart() { return "Add to cart"; } @Get @Mapping("/orders") public String getOrders() { return "User orders list"; } } 管理端控制器: import org.noear.solon.annotation.*; @Controller @Mapping("/api/admin") public class AdminController { @Get @Mapping("/products") public String manageProducts() { return "Admin Products Management"; } @Get @Mapping("/statistics") public String getStatistics() { return "Admin Statistics Dashboard"; } } 四、方案优势 资源复用:共享应用上下文,减少系统资源占用 部署简化:单一应用包包含多套服务功能 隔离性:端口级别的访问控制和业务逻辑隔离 灵活性:不同端口可采用独立的运维策略和安全配置 五、扩展建议 结合配置中心实现端口动态管理 集成监控组件,分别统计各端口服务指标 基于端口实现差异化的限流和熔断策略 该方案为复杂业务场景下的服务部署提供了灵活而高效的解决方案,既保证了服务间的逻辑隔离,又实现了资源的有效利用。

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

投资人热衷的云计算行业 安全性究竟有多重要?

云计算市场近几年的迅猛发展,使得越来越多的企业对云计算的认可度不断提高,这是得益于云计算确实给企业云业务所带来了便捷与高效等利好。与此同时,资本市场对于云计算市场也相对比较热衷。 但随着云计算行业的发展,除了基本的节点、带宽、价格等备受企业关注的因素外,云计算服务商的安全性也成为各方关注的焦点。尤其是众多企业将任务关键型应用程序和相关的数据逐步上云,如此一来,云的安全性比以往任何时候都显得更为重要。云计算的安全问题,也开始从被动安全逐渐上升到主动安全模式,不仅要从备份恢复的常规安全思维里跳脱出,还要有全面和快速的安全危机的应对处理能力。 云计算的安全性被重新定义 安全专家+投资人共同看好 对此,云计算的安全专家万涛表示,目前安全团队最大的挑战是内容安全,这个内容超越了传统单纯黑客层面的对抗,包括像编解码、内容、鉴黄,用户隐私,范畴划分得更大。 而持同样观点的还有资深的投资人,汇聚和光资本的创始人包江华就曾说过:“云计算分为好几层,而投资机会在各个层面上都有,包括SAAS、PAAS、IAAS,还有架构发生的变化使得安全、运维也会被重新定义,在这个基础上也有很多创新公司的机会。很多IAAS公司也拿到了一些投资,比如前两年的Openstack公司,现在很多Docker公司。包括基础架构这一层的软件定义一切、软件定义网络、软件定义存储,这些公司也有很多拿到了投资,这肯定是一个投资热点。” 行业大咖详细阐释 如何构建云计算公司的安全架构 而身为乐视安全中心总经理的万涛,通过他在实际工作中的经验阐释了如何构建一个完整的云计算安全堡垒。首先,他认为安全团队非常重要,比如他在乐视云安全中心组建了一只“铁军”,这支军队汇聚了来自IBM、360、绿盟、阿里等知名企业的优秀安全人才,提供包括云清洗、云WAF、云扫描、云主机安全卫士、安全大数据AI和移动安全的全栈安全+金融创新模式的云安全产品与服务,可为客户提供安全基础保险、托管式的简洁保障与业务增值。 为此,万涛特别打造了一个云清洗防护系统,其基于出色的带宽和计算资源以及基于大数据平台的应用,可以从时间和空间上增强清洗的性能,提升防护效果。云清洗系统通过智能流量调度系统将访问到原有服务器的流量调度到具有更大防护能力清洗节点进行清洗,然后把正常流量再回源到服务器,此过程中如有加速需求的用户可以在清洗节点实现缓存加速。 在流量清洗方面,万涛说已经过了原有拼单点能力的时代,更好的清洗效果需要专业化团队并利用最新的技术,协同具有清洗能力的IDC,CDN,运营商等友商共同来实现。乐视云计算清洗产品正是基于自身多年来对网络安全产品长期的研发经验,利用自身的计算和带宽资源,也业界友商强强联手,来满足不同应用场景的海量攻击流量的清洗防护需求。 云计算时代的安全挑战严峻用户安全掌握在自己手中 云计算时代所面临的安全挑战并不比传统安全所面临的问题要少,甚至于相较之下更加复杂。而知道创宇高级安全顾问王利伟则认为:“尽管企业在采用云时,很多业务的交付都变成了由云服务提供商来交付,但最终的安全责任却并没有完全转移出去,最终的安全责任仍旧把握在用户自己手中。” 因为云供应商虽然应该为正在传输和静态数据提供加密,但这往往不够。最终,保护客户业务数据的责任不在于云提供商,而是公司自身确保没有数据泄漏。 他说,在某些情况下,企业可能需要采取行动来解决供应商保护数据的方式——是否可以通过内部保护来增加云提供商所提供的服务,或者可能转向另一个供应商以获得额外的安全性。值得注意的是,虽然安全性很重要,但要警惕太多或是错位的安全性可能会妨碍用户体验甚至对用户体验造成负面影响,因此寻找平衡也是重要的。 即便云计算的安全性已经变得非常重要,但在中国还没有完全重视起来。汇聚和光资本的创始人包江华说,在中国真正做云安全的公司真是难觅。安全公司在硅谷,每个细分行业都有一堆安全公司保护着云安全。而在中国这些公司寥寥无几。他认为要发展SAAS安全一定要跟上,否则就无法谈论云的问题。云在美国,SAAS应用非常广泛,给SAAS配套的安全企业也非常多,很好的保护了它的安全。所以在中国的云计算企业想要获得投资人的青睐,除了考虑技术、产品、团队、市场等因素外,也需要将安全建设提上日程。 本文作者:佚名 来源:51CTO

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

某社交App cs签名算法解析(一) SSL双向认证

一、目标 奋飞: 老板,咱们得招几个妹子呀,咱们公司男女比例太失衡了。 李老板: 你去这个App上晃晃,据说上面妹子很多。 我去,包都抓不到,耍个毛线呀。 TIP: 新鲜热乎的 v3.83.0 二、步骤 SSL双向认证 问了下谷歌,有不少同道都遇到了返回值是 400 No required SSL certificate was sent 这种情况。 他们一致认为,是遇到了SSL双向认证。 不过谷歌传来的消息是,搞SSL双向认证很简单,把客户端证书,搞出来,然后再导入到 Charles,就大功告成了。 client.p12 在Apk包里面轻松找到 /assets/client.p12, 下一步就是找对应的证书密码,so easy嘛。 Jadx上,搜索字符串 "client.p12" 或者 "client.cer", 字符串倒是都找到了,不过问题是,找不到这些字符串被调用的地方。 看来被同道们搞了好几轮,新版本的App做了修改了。 Hook KeyStore来Dump证书 只要客户端有证书,那就一定会在使用中导入,我们在他导入的时候Dump出来,这样应该可以通杀了。 Java.perform(function() { console.log("在https双向认证的情况下,dump客户端证书为p12. 存储位置:/sdcard/Download/client_keystore_{nowtime}.p12 证书密码: fenfei"); Java.use("java.security.KeyStore$PrivateKeyEntry").getPrivateKey.implementation = function() { var result = this.getPrivateKey(); let filePath = "/sdcard/Download/client_keystore_" + "_" + getNowTime() + '.p12'; dump2sdcard(this.getPrivateKey(), this.getCertificate(), filePath); return result; } Java.use("java.security.KeyStore$PrivateKeyEntry").getCertificateChain.implementation = function() { var result = this.getCertificateChain(); let filePath = "/sdcard/Download/client_keystore_" + "_" + getNowTime() + '.p12'; dump2sdcard(this.getPrivateKey(), this.getCertificate(), filePath); return result; } }) 运行之前先允许这个App有读写存储卡的权限,因为最后我们是把证书写到sd卡里面了,否则会提示: Error: java.io.FileNotFoundException: /sdcard/Download/client_keystore__2021_05_24_xx_xx_xx_53.p12 (Permission denied) 跑一下,程序崩溃了。 这也难不倒我们,估计大概率是被检测到了, 那么换frida端口,然后把fridaServer换成hluda-server。 再来,还是崩溃。奇怪,还有啥呢? Xposed。 把Xposed Status关掉。 再来。 dump File dump OK !!! dump:/sdcard/Download/client_keystore__2021_05_24_16_48_09_24.p12 完美,证书出来了,咱们赶紧拷出来。 Charles添加证书 Proxy -> SSL Porxy Settings 然后输入证书监控的host , *.sxxapp.cn ,端口是 443 迫不及待了,跑一把试试。 完美收工。 三、总结 frida的spawn模式启动这个App的时候会崩掉,我认为是Xposed的原因,把Xposed关掉就好了。当然也许是我的手机环境有问题。 大家都在进步,所以要多掌握几种方法,东边不亮西边亮。 Dump证书的方法,参考 https://github.com/CreditTone/hooker 中的 keystore_dump.js 感谢大佬们提供的神奇工具。 当别人都很老实的时候,你就耍点儿小聪明;当别人都耍小聪明的时候,你就老实做人。当别人既会耍小聪明又会做老实人的时候,你就干点别的。 TIP: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。 关注微信公众号: 奋飞安全,最新技术干货实时推送

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

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

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等操作系统。

用户登录
用户注册