亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

OpenID 和 OAuth 的區別及第三方登錄的安全隱患

系統 2311 0

不知道什么時候開始,我們已經習慣了點擊“用XX帳號登錄”或者 "Login with XX" 來訪問網站,但是大多數人可能都不知道這背后涉及的事有多復雜。

?

OpenID 和OAuth 完全是為了兩種不同的需求而生

OpenID 的目標是為了幫助網站確認一個用戶的身份 OAuth 的目標是為了授權第三方在可控范圍下訪問用戶資源

?

OpenID 是怎么認證用戶的?

一個網站如果想要接入 OpenID 認證是非常簡單的,不需要創建應用,不需要 App Key ,不需要 Secret ,只需要將用戶導向 OpenID Provider 的 Entry 并帶上 Callback ,用戶只要同意提供信息,你就可以拿到這個用戶的“唯一標識”。

請注意這里我使用了“唯一標識”這種說法,因為對于網站來說,OpenID Provider 提供的既不是用戶的 UID ,也不是用戶的 E-Mail ,比如 Google 在默認情況下提供的就是一個幾十位長的字符串,這個字符串是隨機生成的,第三方網站無法從中獲得用戶的任何私人信息。這么說可能很抽象,舉個例子:

比如我用 Google 的 OpenID 服務登錄 example.com , example.com 先把我導向 Google 的授權頁面,我使用 Google 帳號 test@gmail.com 登錄并同意后,頁面跳回 example.com example.com 拿到了我的“唯一標識”,這個唯一標識可能是 cd5f2126c2b2f97ca2d446e52c6ff4baea56fd4bcfcea30afcaaf6b73bcb04a1 example.com 從這個字符串里無法獲得任何 test@gmail.com 的個人信息(甚至連郵箱地址也不知道), example.com 只知道以后只要使用谷歌登錄并返回 cd5f2126c2b2f97ca2d446e52c6ff4baea56fd4bcfcea30afcaaf6b73bcb04a1 這個標識符,那就是我在登錄。

顯而易見,OpenID 是專為登錄認證而生,它使用簡單,門檻很低,但是如果你想在認證過程中獲得用戶的其他信息(比如 E-Mail )就得多做一步了。

?

如何在 OpenID 認證的過程中獲得用戶的部分信息?

傳統的 OpenID 是做不到這一點的,你只能拿到“唯一標識”。不過新版的 OpenID 引入了 " OpenID attribute exchange " 這個概念,這樣第三方可以在用戶的許可范圍內獲得用戶的部分具體信息。

還是上面的例子,如果 example.com 告訴 Google ,我想知道這個用戶的 E-Mail 地址,谷歌就會在授權頁面告訴用戶:“example.com 想要你的 E-Mail 地址”,這時如果用戶點擊同意, example.com 就能在回調請求中拿到 test@gmail.com 這個地址。

對于網站能拿到的信息,不同 Provider 有不同的規定,一般來說包括

aim, blog, country, dob (date of birth), email, fullname, gender, icq, image, jabber, language, msn, nickname, phone, postcode, skype, timezone, website, yahoo

等等。

?

那么,OAuth 又是怎么認證用戶的?

與 OpenID 相比,網站想接入 OAuth 要稍微麻煩點,網站需要先創建應用,拿到 Key 和 Secret ,才能接入 Provider 。

OAuth 的授權過程并不是身份認證的過程,這一點需要特別清楚,網站走完OAuth 流程并拿到用戶的授權 token 后還需要通過 token 調用相應的用戶信息接口才能獲得“唯一標識”,舉個例子:

我想通過新浪微博登錄 example.com example.com 要先把我 redirect 到新浪微博的授權頁面,我通過微博帳號登錄并授權后,頁面跳回 example.com example.com 拿到我的訪問 token 后還要再調用一個接口來獲得我的新浪會員 UID ,這個 UID 就是新浪用戶的“唯一標識”了。

可以看出,OAuth 相對于 OpenID 最大的區別就是,網站實際上是拿到了你的帳戶訪問權限繼而確認你的身份,這是一個安全隱患,因為網站在拿到你的“唯一標識”的同時還拿到了一把你的賬戶的 “臨時鑰匙”。至于網站會不會拿這把鑰匙“干壞事”,這個只有站長心里清楚。同時 OAuth 還比 OpenID 多了幾個額外的請求步驟,登錄所費時間一定是長于 OpenID 的。

大多數的網民是沒有這種意識的,他們對“通過XX登錄”的認證過程中的提示早已視而不見:

有多少人真正注意過左邊的文字?

豆瓣寫的更清楚,XXX應用“希望操作你在豆瓣上的數據”而不是“希望使用你的豆瓣賬號來登錄XXX”

?

國內外主要服務商認證方式對比

提供商 認證方式 認證后網站獲得的權限 安全程度
Google OpenID + OAuth 如果使用OpenID,網站無法獲得任何額外權限(包括獲得你的Google賬戶名稱),如果使用OAuth,網站須明確說明需要訪問哪些服務的權限并經過用戶逐項同意
Facebook OAuth 默認授權情況下只能讀取你的公開信息(不包含E-Mail地址),如果網站需要更高級權限需要明確聲明并經過用戶逐項同意
QQ空間 OAuth 默認授權情況下只能讀取你的公開信息(不包含QQ號),如果網站需要更高級權限需要明確聲明并經過用戶逐項同意
新浪微博 OAuth 默認授權情況下可以獲得你的所有信息(私信及身份證號、姓名等除外),并可以你的身份操作絕大多數微博功能
Windows Live OAuth 默認授權情況下只能讀取你的“唯一標識”,如果網站需要更高級權限需要明確聲明并經過用戶逐項同意,默認情況下基本類似于OpenID
騰訊微博 OpenID + OAuth 如果使用OpenID,網站無法獲得任何額外權限,如果使用OAuth,默認會獲得用戶所有操作的權限,除非應用明確聲明只需要部分權限 使用OpenID時, 使用OAuth時,
搜狐微博 OAuth 默認授權情況下可以獲得你的絕大多數信息,并可以你的身份操作絕大多數微博功能
網易微博 OAuth 默認授權情況下可以獲得你的絕大多數信息,并可以你的身份操作絕大多數微博功能
百度 OAuth 默認授權情況下只能讀取你的公開信息(UID、百度帳戶名),如果網站需要更高級權限需要明確聲明并經過用戶逐項同意
人人 OAuth 默認授權情況下只能讀取你的公開信息(UID、好友關系等),如果網站需要更高級權限需要明確聲明并經過用戶逐項同意
開心網 OAuth 默認授權情況下只能讀取你的公開信息,如果網站需要更高級權限需要明確聲明并經過用戶逐項同意

?

總結

總體來說,國外的網站都比較正規,第三方網站幾乎無法獲得任何私人信息,而國內網站對個人信息的保護水平高低不齊,某些網站甚至沒有任何保護,新浪微博等網站的“第三方接入”,用一句話來說,不管你敢不敢用,我反正是不敢用。

?

原文: https://www.idndx.com/2012/04/23/openid-vs-oauth-and-the-security-risk-of-oauth-login/

?

?

?

OpenID 和 OAuth 的區別及第三方登錄的安全隱患分析


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 在线视频一区二区日韩国产 | 国产精品高清视亚洲乱码 | 一本久久精品一区二区 | 老司机午夜网站 | 久久99热这里只有精品 | 狠狠色欧美亚洲狠狠色五 | 免费特黄一级欧美大片在线看 | 天天草夜夜操 | 国产精品福利午夜h视频 | 亚洲精品中文字幕在线 | 日韩中文字幕一区 | 天天摸天天操天天干 | 欧美激情一区二区 | 99九九精品国产高清自在线 | 免费在线中文字幕 | 久久精选 | 国产精品综合一区二区三区 | 久久国产精品一区二区三区 | 综合色播 | 久久国产精品影院 | 国产视频a区| 奇米影视777在线播放 | 欧美大色网 | 337p欧美超大胆日本人术艺术 | 在线看片不卡 | 一级毛片无毒不卡直接观看 | 亚洲爱爱视频 | 深夜免费在线观看 | 国产免费观看a大片的网站 国产免费精彩视频 | 国产午夜亚洲精品第一区 | 免费看美女隐私的网站 | 成人日韩视频 | 一本伊在人香蕉线观新在线 | 亚洲国产99在线精品一区二区 | 2020国产精品视频 | 日本高清在线精品一区二区三区 | 国产成人aa视频在线观看 | 台湾一级毛片永久免费 | 永久黄网站色视频免费观看 | 久久久中文字幕 | 久久精品国产第一区二区 |