从“黑掉Github”学Web安全开发
来源:互联网 发布:微软雅黑bold mac冲突 编辑:程序博客网 时间:2024/05/07 10:01
Egor Homakov(Twitter: @homakov 个人网站: EgorHomakov.com)是一个Web安全的布道士,他这两天把github给黑了,并给github报了5个安全方面的bug,他在他的这篇blog——《How I hacked Github again》(墙)说明了这5个安全bug以及他把github黑掉的思路。Egor的这篇文章讲得比较简单,很多地方一笔带过,所以,我在这里用我的语言给大家阐述一下黑掉Github的思路以及原文中所提到的那5个bug。希望这篇文章能让从事Web开发的同学们警惕。关于Web开发中的安全事项,大家可以看看这篇文章《Web开发中的你需要了解的东西》
OAuth简介
首先,这个故事要从Github OAuth讲起。所以,我们需要先知道什么是OAuth。所谓OAuth就是说,第三方的应用可以通过你的授权而不用知道你的帐号密码能够访问你在某网站的你自己的数据或功能。像Google, Facebook, Twitter等网站都提供了OAuth服务,提供OAuth服务的网站一般都有很多开放的API,第三方应用会调用这些API来开发他们的应用以让用户拥有更多的功能,但是,当用户在使用这些第三方应用的时候,这些第三方的应用会来访问用户的帐户内的功能和数据,所以,当第三应用要干这些事的时候,我们不能让第三方应用弹出一个对话框来问用户要他的帐号密码,不然第三方的应用就把用户的密码给获取了,所以,OAuth协议会跳转到一个页面,让用户授权给这个第三方应用以某些权限,然后,这个权限授权的记录保存在Google/Facebook/Twitter上,并向第三方应用返回一个授权token,于是第三方的应用通过这个token来操作某用户帐号的功能和数据时,就畅通无阻了。下图简单地说明了Twitter的OAuth的授权过程。
OAuth简介
首先,这个故事要从Github OAuth讲起。所以,我们需要先知道什么是OAuth。所谓OAuth就是说,第三方的应用可以通过你的授权而不用知道你的帐号密码能够访问你在某网站的你自己的数据或功能。像Google, Facebook, Twitter等网站都提供了OAuth服务,提供OAuth服务的网站一般都有很多开放的API,第三方应用会调用这些API来开发他们的应用以让用户拥有更多的功能,但是,当用户在使用这些第三方应用的时候,这些第三方的应用会来访问用户的帐户内的功能和数据,所以,当第三应用要干这些事的时候,我们不能让第三方应用弹出一个对话框来问用户要他的帐号密码,不然第三方的应用就把用户的密码给获取了,所以,OAuth协议会跳转到一个页面,让用户授权给这个第三方应用以某些权限,然后,这个权限授权的记录保存在Google/Facebook/Twitter上,并向第三方应用返回一个授权token,于是第三方的应用通过这个token来操作某用户帐号的功能和数据时,就畅通无阻了。下图简单地说明了Twitter的OAuth的授权过程。
0 0
- 从“黑掉Github”学Web安全开发
- 案例分析---从“黑掉Github”学Web安全开发
- 从“黑掉Github”学Web安全开发
- 从“黑掉Github”学Web安全开发
- 从“黑掉Github”学Web安全开发
- 从“黑掉Github”学Web安全开发
- 从0开始学github
- web开发 学什么?
- 从web.xml学xml
- web安全开发手册
- Web安全开发注意事项
- Web安全开发注意事项
- Web 安全开发注意事项
- Web安全开发注意事项
- 由黑漂白 从一个黑客到安全网站CEO
- 防黑15招保障企业Web服务器安全
- 【技术分享】从安全公告到任意代码执行之看我如何黑掉HP的打印机
- 网站编程开发安全手册 防黑相关
- 系统学习Linux的十一点建议
- JavaScript中的原型链
- 分析优酷/土豆/pptv/乐视 HTML5、m3u8地址
- 有序的结构体数组
- 中国人为何迷恋普京 曾给外交部寄钙片
- 从“黑掉Github”学Web安全开发
- ORACLE 分割字符串的函数实现
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
- c语言高精度大整数加法运算
- 硬链接和符号链接的区别
- Core Python:Python中继承特性的简述
- java之容器
- 算法 牛顿迭代法(一定精度内实现sqrt)