Browse Month: 八月 2017

十大安全问题

OWASP Top 10 2017

A1 注入

不可信的数据作为命令或者查询语句的一部分,被解释器执行,导致执行了计划以外的命令或者访问未被授权的数据

A2 失效的身份认证和会话管理

应用程序不能有效校验用户身份,导致用户被冒充

A3 跨站脚本

浏览器上被执行攻击者的脚本

A4 失效的访问控制

访问未经授权的功能和数据

A5 安全配置错误

默认设置不安全,需要专门维护

A6 敏感信息泄漏

敏感数据需要额外的保护,在存放或传输过程中进行加密

A7 攻击检测与防范不足

API 缺乏对手动和自动攻击的检测,预防和响应的基本功能

A8 跨站请求伪造

浏览器伪造HTTP 请求,从而向存在漏洞的应用程序发送请求

A9 使用含有已知漏洞的组件

漏洞组件将破坏应用程序防御系统

A10 未受保护的APIs

JS 和客户端应用程序的API 通常不受保护并且存在漏洞

参考资料

《OWASP Top 10 2017》

CSRF 跨站点脚本攻击

CSRF 跨站点脚本攻击

定义

CSRF(Cross Site Request Forgery) 跨站伪造请求攻击

使用场景介绍

攻击场景如下

  1. 用户Alice向网站Trusted.com发送身份验证请求
  2. Trusted.com验证通过并在Alice的浏览器中注入cookie
  3. 用户Alice在没有登出Trusted.com的情况下,登录另一个网站Malicious.com
  4. 这个网站通过链接或者javascript的形式向Trusted.com发送请求
  5. 由于请求中包含了cookie,导致Trusted.com误以为请求是Alice发出的,导致Alice的数据被篡改

原理解析

CSRF 原理

用户首先要完成在Trusted.com网站的认证,用户在登陆Malicious.com时还没有登出Trusted.com,因此Cookie中还保存着用户的认证信息

CSRF常用的攻击方式
在网页中嵌入图片,设置image.src = “trusted.com?params”,这样可以通过get请求进行csrf攻击
在网页中嵌入javascript,在页面load后生成表单进入post操作。和第一种没有本质的区别

演示示例

git flow

git flow

git flow 使用步骤

  1. 初始化

git flow init

  1. 增加新特性

开发基于develop 分支,新特性从develop 分支切出,开发完成后再合并会develop

开发新特性 git flow feature start MYFEATURE

  1. 完成新特性

新特性开发完成后,需要合并 MYFEATURE 到 develop 分支,切回develop 分支后,删除 MYFEATURE 新特性分支

完成新特性 git flow feature finish MYFEATURE

  1. 合作开发新特性

需要合作开发新特性时,需要将新特性发布到远程服务器,这样其他用户也可以使用这个分支

git flow feature publish MYFEATURE

  1. 获取需要合作开发的新特性分支

取得其它用户发布的新特性分支,并签出远程的变更

git flow feature pull origin MYFEATURE

或者使用 git flow feature track MYFEATURE 跟踪远程特性分支

  1. 准备release

开始准备release, 从develop 创建用于预发布的分支

git flow release start RELEASE [BASE]

  1. 发布release

创建release 后立即发布,允许其他用户向这个release 分支提交内容,用于持续修复bug

git flow release publish RELEASE

  1. 完成release

当relase 分支不再需要提交修复补丁时,就可以将 relase 分支合并到master 分支进行发布

完成 release 分为合并 relase 到 master,用 relase 分支名打Tag, 合并release 分支到 develop,移除release 分支

git flow release finish RELEASE

  1. 紧急修复

当需要修改master 分支上某个Tag 标记的生产版本时,使用紧急修复

  1. 开始紧急修复

git flow hotfix start VERSION [BASENAME]

  1. 完成紧急修复

当完成紧急修复时,代码合并回 develop 和master 分支,并在master 上打上修正版本的Tag

git flow hotfix finish VERSION

参考资料