微博网站用OAuth就一定安全吗?

news/2024/5/12 23:37:12/文章来源:https://blog.csdn.net/iteye_9378/article/details/82046880

现在微博网站很火,新浪微博、搜狐微博、腾讯微博、网易微博……无论是在电视上、还是公交车上、地铁上,真的是铺天盖地了,也因此这些公司的市值不断提升。为了吸引更多的应用,这些网站也纷纷开放API,以开放平台的方式供第三方应用开发或进驻微博广场。今天我们就来说一下这些开放API的授权问题。

作为开发人员,我们都知道开放API必然会有鉴权部分,要充分考虑到用户数据的安全性,因此,这些网站都有授权机制,常用的有如下两种。

一种是Basic Authentication,也称为普通鉴权或基本鉴权,是一种通过在HTTP头信息中加入用户名密码进行传输以确认用户身份的协议。当我们在开发应用时,会有一个界面用来要求用户输入用户名和密码,然后按RFC2617标准将用户名和密码用冒号连接起来并做Base64编码,每次进行HTTP请求时在header数据中加入:

Authorization: Basic 编码后的用户信息

即可。

这种方式简单易行,开发方便,但不足之处是安全性差。一是开发人员可以轻而易举的记录用户的用户名和密码信息,二是通过HTTP包可以很容易的进行Base64解码并形成用户信息的明文,因此,目前很多网站都不再提供对此种授权方式的支持。

另一种是OAuth,这是目前应用最多的一种鉴权方式,其目的就是针对普通鉴权的安全性提出的,一是不想在我们开发的应用程序中提供用户输入用户名密码的界面,从而防止开发人员对用户登录信息的记录,二是在通过授权后的HTTP通信中不再传输用户信息而是以数字签名和AccessToken取代,即使截到HTTP包,也无法还原出用户的登录信息。

只不过鱼与熊掌不可兼得,这种方式的初次用户授权过程很漫长,要想获取到AccessToken,需要经过好几个步骤,可以参考新浪给出的这张图。

或者参考OAuth协议简介的博文。

OAuth是目前用得最多的协议,但某些使用该协议的网站却没有重视该协议在实现中的细节,实现得不是很理想,导致安全信息的泄露。拿新浪微博的开放平台为例,假设我们已经在新浪微博开放平台上创建了应用,得到了新浪分配的AppKeyAppSecret,然后在Android手机上开发客户端程序,按照上述流程开发OAuth鉴权部分。

首先访问request_token获取RequestKeyRequestSecret,这步没有问题。

接下来,访问authorize获取用户授权确认,注意,这里显示出来的供用户确认的网页本意是不想在我们的应用程序中出现,直接利用外部浏览器进行,这样在整个用户输入登录信息的过程中对开发人员是不可见的。问题就出在这里。如果在我们自己的Android应用程序中内嵌浏览器WebView的话,尽管用户在授权页面上输入的用户名和密码不好获取,但是当用户点击授权按钮后的HTTP请求还是会传入到WebView对象的onPageStarted()中,受我们的应用程序控制。也就是说,用户填好登录信息并提交时,我们可以在onPageStarted()中得到如下的URL

http://api.t.sina.com.cn/oauth/authorize?action=submit&oauth_token=xxx &display=null&oauth_callback=http%3A%2F%2Fxxx&from=&userId=xxx%40sina.com&passwd=123456

从这里我们看到了什么?没错,看到了用户登录的ID和密码,而且是明文的。

写到这里,我想可以结束本文了,总体上来说,对比这两种授权方式,显然还是OAuth更安全,但是希望网站方在提供用户授权的页面时,还是要仔细处理这些问题。要知道现在客户端开发是可以很容易的在自己的界面中内嵌浏览器并可以监控到用户在浏览器中的操作的。如果这样的程序分发出去,真的想获取用户的登录名和密码的话,对用户的信息安全还是很危险的。

用一句经典的话结尾吧:安全永远是相对的。

——欢迎转载,请注明出处 http://blog.csdn.net/caowenbin——

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_893243.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你的网站排名是否遭到竞争对手的破坏?

一说起这个名字,站长们猛的一震,如果自己的网站排名遭到竟争对手的恶意攻击,那可怎么样办?如果你的网站外部链接突然大量增加,有可能会伤害你的网站排名。 其实大家不必恐慌,我个人认为外部链接不会降低排名…

你的站为什么百度无动于衷——10年老站长的SEO肺腑之言

时光荏苒,转眼间2015年已过去一半,时过境迁,一切都变了模样,SEO也似乎变得让人琢磨不定。回想起10多年前,站长们都疯狂做站的时代,仍令人激动,但那份激情貌似一江春水永不复返,如今再…

安装BIRT(java报表设计器)(译自ECLIPSE网站)

安装BIRT(java报表设计器) 1:介绍 下边是完整的BIRT安装介绍.如果你已经对ECLIPSE比较熟悉的话,你可以看下载页面的简介,如果不是的话, 你按照下边的介绍系统的学习安装. JAVA 你必须安装(JRE) 版本要根据你安装的ECLIPSE来决定 ECLIPSE BIRT 需要以下的配置 eclipse 3.…

使用微信小程序来实现网站的扫码登录功能

使用微信小程序来实现网站的扫码登录功能 偶然间, 我发现了扫描微信小程序码就可以登录的网站, 后来也发现腾讯云的后台登录, 也是扫描一个二维码后,打开一个微信小程序后, 在小程序上点击授权,就可以登录了, 所以我就本着好奇的态度, 研究了一下这个功能是如何实现的.为此我还…

Python爬某Ecust教务处网站

1.背景: 某ECUST高校的教务处网站现在查成绩需要验证码了。但是家长登陆的窗口还没有使用验证码,用这个漏子来爬去一下教务处的成绩: 2.工具: Google chorme浏览器 Python 3.6.0 requests 库 PyQuery 库 lxml 库(代码中并未用到,只是因为PyQuery库…

利用华为云建WordPress博客网站

一、建站要求 使用主备2台RDS服务器先使用第一台ECS云服务器建站可以用Wordpress镜像,但建议用运行环境镜像搭建服务器,然后下载wordpress软件,解压安装的方式单台ECS正常运行后,通过私有镜像的方式,构建第二台ECS使用…

SEO笔记(一)

1、SEO优缺点 优点:成本低、持久性、不需要承担“无效点击”的风险; 缺点:施工时间长、不确定性(不能保证SEO能够达到什么效果)、被动性(搜索引擎算法改变会给SEO带来灾难性的后果)。 2、搜索…

SEO笔记(二)--URL优化

1.URL简介 URL(Uniform Resource Locator,统一资源定位器)是页面的网址,通过URL才能访问具体的网页。URL优化时网站的六大重要环节之一,在决定页面相关性中有重要作用,而且会直接影响到收索引擎对页面的收…

SEO笔记—网页结构优化(四)

网页结构优化是页面优化的重点之一,它是对网页内容布局的规划,合理的网页结构能够有效地提高用户体验和搜索引擎的友好性。网页主要包含导航栏、栏目以及正文三部分组成,对网页结构的主要也是围绕这三部分进行的。 1、页面重要区域分布规律 …

国外家喻户晓的搜索引擎优化SEO工具商SEOmoz公司获$1800万融资

5.1日,国外著名的SEO(搜索引擎优化)工具商 SEOmoz 获得1800万美元融资,此次投资由风险投资公司 Foundry Group 和 Ignition Partners领头。关于 SEOmoz,目前是一个著名的seo工具提供商,最初为分享优化经验…

SEO笔记—网站结构(五)

网站的结构是指网站中页面之间的层次关系,可分为逻辑结构和物理结构,他直接影响搜索引擎对网站页面收录的数量和页面的权重。 1、搜索引擎首先会抓取网站中权重最大的页面(一般是首页),然后跟踪其中的连接来抓取网站中…

sharepoint 2016 场快速配置(4)mdash;mdash;管理网站集

网站集管理 创建网站集 1. 在管理中心站点单击“创建网站集” 2. 选择相应的web应用程序,并设置标题,管理路径和首要站点的模板,以及网站集管理员 3. 使用powershell命令创建网站集 New-SPSite http://moss2016 -HostHeaderWebApplication…

从shenfenzheng网站获取身份证号码等信息

这个程序是最初学Beautiful Soup时,写的一个程序。 因为相对以前的正则什么的,获取一组数据还是有点麻烦的,这边分割,那边分割。程序代码也没有那么简单直观。 如图,是我们今天要获取数据的网页 本次我们用到的的…

JS特效教程:给网站添加鼠标点击弹出指定汉字特效

网站添加鼠标点击弹出指定汉字特效,就是鼠标点击站点任何位置,都会随机弹出我们指定的一组汉字中的一个。比如指定“文明,自由,民主,公正,和谐”等,点击鼠标时就会随机显示这一组的某个词语&…

中小型网站运营者的基础运营思路

对于中小型网站、尤其是企业展示型官网的运营者,往往技术能力有限,由公司的“网管”负责运营,这就意味着这个网管很可能对网站运营毫无概念,或是一知半解,本篇文章就是基于这个现状,讲述一下这种情况下的基…

揭秘全球最大网站Facebook背后的那些软件

2010年6月,Google公布全球Top 1000 网站。Facebook独占鳌头。 以Facebook现在的经营规模,诸多传统服务器的技术均将崩溃或根本无法支撑。那么面对5亿的活跃用户,Facebook的工程师们又将如何让网站平稳运转呢?伯乐在线 - 职场博客的…

2019仿笔趣阁小说网站源码(PC版+手机版+APP+采集器+教程)下载

第三套杰奇WAP小说模板,使用百度MIP,更重要的是这次使用了百度的MIP来制作模板。 1、底层程序仍然是独立版程序,模板样式和代码已经全部重写,不在有原来的代码。 2、同时本套程序已经更新过底层代码,本套模板中&#x…

苹果cmsv10漂亮大气响应式视频网站模板(自适应手机端)源码下载

苹果CMSV10模板,仿69TAN,黑色大气自适应视频网站模板 提供苹果CMS8X和V10模板、海洋CMS模板、菲菲2、X、3 x、5 x、红兔CMS、X模板 源代码下载链接: https://pan.baidu.com/s/1Gg4ATO1vzq5cZXt8u7YDAA 提取码: sjwg

阿里云主机搭建网站,并使外网可访问到

一、在阿里云主机搭建网站 1.连接上阿里云主机,在里面操作:(在本地的电脑使用远程桌面连接即可,输入公网IP和用户密码进行连接) 下载phpstudy(一个类似WEB服务器的软件工具,搭建服务器环境&…

You-Get,多网站视频下载工具,非常方便

You-Get是一个非常优秀的网站视频下载工具。使用You-Get可以很轻松的下载到网络上的视频、图片及音乐。 按WinR键打开运行,输入cmd,再输入命令 pip install you-get,安装 you-get you-get 中文说明 : https://github.com/soimort/you-get/wik…