就是愛尚生活 - 94i3 Life

 找回密碼
 免費註册

人氣: 2637|回復: 1

Facebook 加強 App 登入安全性,請登入完成設定

  [複製鏈接]
字體大小: 正常 放大

新浪微博達人勛

總積分排名︰1
簽到
2041
鮮花(66) 雞蛋(2)
累計在線
324124分鐘
發表於 2018-3-29 10:03:31 | 顯示全部樓層 |閱讀模式
  
0.jpg
Facebook 從 2018/3 月起強制所有的 App 都要指定登入的返回網址。

因此, 提醒各企業版的客戶, 請工程師協助在自家的 App 後台, 設定活動的登入網域。

網址:
https://developers.facebook.com/apps/[你的官網APP_ID]/fb-login/settings/

如何設定:
假設你的活動網域: events.mysite.com

你需要在 Facebook App 後台的 Valid OAuth redirect URIs 新增三個網址:
https://events.mysite.com
https://events.mysite.com/m/login
http://events.mysite.com/m/login

Facebook 也很貼心的會提醒你遺漏的網址,因此,只要登入後台,把 Facebook 提示的網址都加進去就可以了。
相關文件:
發燒研究員

安全性檢查清單
以下會列出使用「Facebook 登入」的應用程式一律必須執行的基本必要步驟。您可視需要為應用程式加入其他功能;請您持續思考如何能更有效的保障應用程式的安全,有安全疑慮的應用程式將失去用戶的信賴,最終將流失大量用戶。
0.jpg


1.jpg


2.jpg


3.jpg


4.jpg


5.jpg


6.jpg


7.jpg



應用程式密鑰
應用程式密鑰可用在某些登入流程來產生存取權杖,而且密鑰本身是用於確保您的應用程式僅限信賴的用戶使用。密鑰可用於輕鬆建立應用程式存取權杖,而應用程式存取權杖可代表這個應用程式的任何用戶提出 API 要求,因此可保護應用程式密鑰不遭人盜用至關重要。

因此,請一律不要在可能由任何用戶(除了這個應用程式的開發人員之外)存取的任何程式碼中,加入應用程式密鑰或應用程式存取權杖。上述注意事項也適用於其他有安全疑慮的程式碼方法,像是用戶端程式碼(例如 HTML 或 Javascript)或可能被反編譯的原生應用程式(例如 iOS、Android 或 Windows 桌面應用程式)。

建議您一律直接從您的應用程式伺服器使用應用程式存取權杖,以保障應用程式安全無虞。如果是原生應用程式,建議您讓應用程式與您自己的伺服器溝通,接著再透過住這台伺服器使用應用程式存取權杖,向 Facebook 提出 API 要求。

基於上述原因,如果在應用程式主控板的進階設定中,您的「應用程式類型」是設為 Native/Desktop,我們會假設您原生應用程式的二進位檔中含有應用程式密鑰或應用程式存取權杖,並拒絕繼續進行由應用程式存取權杖簽署的呼叫。此 API 接著會顯示沒有提供存取權杖。

如果您的應用程式密鑰遭人盜用,請立即在應用程式主控板的基本設定中重設應用程式密鑰。在執行重設程序之前,您可以指定在提出要求時讓被盜用的密鑰持續使用的小時數,但是任何從 Facebook 傳送來的內容(例如已簽署的要求),都將立即使用新的密鑰,所以您必須盡快調整程式碼,以要求使用新的密鑰。

使用 appsecret_proof 的伺服器端安全呼叫
您可以要求向 Facebook API 的伺服器對伺服器呼叫以 appsecret_proof 參數簽署,進而減少遭遇惡意軟體和濫發垃圾郵件者的風險。 我們會在圖形 API 安全呼叫文件中深入探討此主題。

使用短期權杖和程式碼流程的用戶端安全呼叫
如果使用某些設定,應用程式會在多個用戶端之間重複使用長期權杖, 但請不要這樣做。 請改用以程式碼流程產生的短期權杖,如同我們的存取權杖文件中說明的方法。

權杖劫持
若要瞭解權杖為何遭到劫持,您可以想像有個要進行 API 呼叫的原生 iOS 應用程式,但這個應用程式沒有直接這樣做,而是和相同應用程式所擁有的伺服器溝通,並傳遞使用這個 iOS SDK 所產生的權杖給這台伺服器,而伺服器之後可能會使用這個權杖來進行 API 呼叫。

這台伺服器用來接收權杖的端點可能被盜用,因此其他用戶可能將完全不同之應用程式的存取權杖傳遞給這台伺服器。這顯然不安全,但還有一種方法可以避免這種情況,也就是永遠不應假設存取權杖來自使用這些存取權杖的應用程式,請改用偵錯端點檢查這些存取權杖。

State 參數
如果您在網站中使用 Facebook「登入」對話方塊,state 參數這個唯一字串可保護您的應用程式不受到跨網站偽造要求攻擊。

啟用 Strict 模式
「Strict 模式」可藉由避免滋事者劫持您的重新導向,進而保護應用程式的安全。目前 Instagram API 必須啟用 Strict 模式,不久後所有應用程式也均須啟用此模式。

在應用程式主控板開啟「Strict 模式」前,請於 Facebook 登入設定執行下列動作,以確保您目前的重新導向流量仍可正常運作 :

  • 如果應用程式使用動態重新導向 URI,請使用 state 參數, 將動態資訊傳回至少數的重新導向 URI。接著將這些有限的 URI 新增到有效的 OAuth 重新導向 URI 清單。
  • 若應用程式包含少數的重新導向 URI,請將其新增到有效的 OAuth 重新導向 URI 清單。

8.jpg
  • 若應用程式僅使用 Facebook SDK,則重新導向流量已受到保護,無需再採取其他行動。
完成上述動作後,請務必啟用 Strict 模式。
9.jpg

Strict 模式的運作方式
Strict 模式會從您有效的 OAuth 重新導向 URI 清單進行精確的比對,防止您的重新導向 URI 遭到劫持。例如,若清單包含 www.example.com,則 Strict 模式不會允許 www.example.com/token 作為有效的重新導向。這個模式也不會允許任何不存在於有效的 OAuth 重新導向 URI 清單中的額外查詢參數。

鎖定 Facebook 應用程式設定
啟用及/或停用應用程式未使用的所有驗證流程,以便盡可能縮小可能遭攻擊的區域。
  • 在用戶端使用程式碼產生的短期存取權杖,而非用戶端產生的權杖或伺服器提供的長期權杖。 程式碼產生的短期存取權杖流程要求應用程式伺服器必須以權杖來交換程式碼,這樣做會比在瀏覽器中取得權杖還來得安全。應用程式應盡可能優先使用這個流程,這樣才會更加安全;如果應用程式只啟用這個流程,在用戶電腦上執行的惡意軟體就無法取得並濫用存取權杖。 請參閱存取權杖文件瞭解詳情。


  • 如果您的應用程式未使用用戶端 OAuth 登入,請將其停用。 用戶端 OAuth 登入是使用 OAuth 用戶權杖流程的全域開關。 如果您的應用程式未使用任何包含 Facebook 登入 SDK 的用戶端 OAuth 流程,請停用此流程。但請注意,如果停用用戶端 OAuth 登入,您便無法要求存取權杖的權限。這項設定位於「應用程式主控板」的產品 > Facebook 登入 > 設定區塊。

10.jpg
  • 請停用網路 OAuth 流程或指定重新導向允許清單。 網路 OAuth 登入設定可啟用任何使用 Facebook 網頁版「登入」對話方塊的 OAuth 用戶端權杖流程,以便將權杖傳回到您自己的網站。這項設定位於「應用程式主控板」的產品 > Facebook 登入 > 設定區塊。如果您沒有要建置自訂網頁版登入流程,或在網路上使用 Facebook 登入 SDK,請停用這項設定。
11.jpg
  • 強制使用 HTTPS。這項設定要求 OAuth 重新導向,以及透過 JavaScript SDK 取得存取權杖的網頁,皆使用 HTTPS。自 2018 年 3 月起,所有新建立的應用程式皆預設為開啟這項設定;您必須在 2019 年 3 月前移轉所有既有應用程式,以確保這些應用程式只使用 HTTPS 網址。大多數主流雲端應用程式主機都能免費為您的應用程式自動設定 TLS 憑證。如果您在應用程式中實作自我裝載,或代管服務預設為不提供 HTTPS,可以從 Let's Encrypt 取得您網域的免費憑證。
12.jpg
  • 如果您的應用程式未使用嵌入的瀏覽器 OAuth 流程,請將其停用。 有些桌面和行動原生應用程式會在嵌入的網頁檢視中執行 OAuth 用戶端流程,藉此驗證用戶。如果您的應用程式並未執行此流程,請在「應用程式主控板」的產品 > Facebook 登入 > 設定區塊停用這項設定。
13.jpg
  • 如果您的應用程式未使用行動單一登入流程,請將其停用。 如果您的應用程式未使用 iOS 或 Android 登入,請在「設定」>「基本」的「iOS」和「Android」區塊停用「單一登入」設定。

應用程式主控板包含許多其他的設定,可讓開發人員用來關閉可能遭受攻擊的區域,避免發生相關安全性問題:
  • 「基本」>「應用程式密鑰」:如果您的應用程式密鑰曾遭人盜用,您可以在這裡重設應用程式密鑰。
  • 「基本」>「應用程式網域」:請用這項設定來鎖定代表您的應用程式執行「Facebook 登入」的網域和子網域。
  • 「進階」>「應用程式類型」:如果您建立的是行動或桌面原生應用程式,且將應用程式密鑰包含在內,請將這個選項設為 Native/Desktop,以防止您的應用程式被反編譯,或是應用程式密鑰遭竊。
  • 「進階」>「伺服器 IP 允許清單」:可指定 IP 位址清單,允許從這些 IP 位址使用您的應用程式密鑰進行圖形 API 呼叫。 從其他 IP 位址使用您的應用程式密鑰進行的圖形 API 呼叫都將失敗。 以用戶存取權杖進行的呼叫不受這項設定影響。
  • 「進階」>「更新設定 IP 允許清單」:鎖定 IP 位址,允許來自這些 IP 位址的用戶調整應用程式設定。請避免在 IP 允許清單中只加入住家寬頻。如果您的 IP 位址改變,您將無法再編輯您的應用程式設定。
  • 「進階」>「更新通知電子郵件」:每當應用程式主控板中有任何應用程式設定出現變更,就會寄送相關通知到電子郵件地址。
  • 「進階」>「串流貼文網址安全」:如果選擇這個選項,您的應用程式將會停止發佈不會指回自己所擁有網域的任何網址。這麼做不一定能保障串流貼文網址的安全;如果您確定應用程式會發佈其他網站連結,更無需多此一舉。

使用 HTTPS
使用具有加密功能的 HTTPS 作為網際網路通訊協定,而非 HTTP。HTTPS 會維護傳送資料的隱私,保護其不受竊聽攻擊。此外,也能保護資料在傳送過程中不遭到置入廣告或惡意程式碼的竄改


就是愛尚生活 - 94i3Life - 歡迎您 加入 !

回復 鮮花(66) 雞蛋(2)論壇版權

使用道具 舉報

新浪微博達人勛

總積分排名︰1
鮮花(66) 雞蛋(2)
累計在線
324124分鐘
發表於 2018-4-3 14:56:10 | 顯示全部樓層

ZZZCR6U67.PNG
歡迎使用 Messenger 開放平台!
Messenger 開放平台提供眾多 API、網頁外掛程式和完整的 WebView,能夠應付打造出色體驗的一切所需。

現在就透過 Messenger,在所有裝置和平台上觸及用戶、支援多種溝通管道、創造可自動回覆和即時聊天的豐富體驗,以及提供更多功能。

為了確保品質及避免平台遭到濫用,所有 Messenger 應用程式都必須提交審查,通過審查後才能與 Messenger 所有用戶互動。在開發期間,你可以傳送訊息給任何獲得你應用程式管理員、開發人員和測試人員角色的人。

若要開始使用,請查看我們的開發人員文件,瞭解平台所有功能的完整說明,並請務必詳閱開放平台政策,瞭解我們允許的使用方式和使用條款。
https://developers.facebook.com/apps/261304127351120/dashboard/
  1. <iframe allowtransparency="true" frameborder="0" height="500" scrolling="no" src="https://www.facebook.com/plugins/page.php?href=https://www.facebook.com/gintiantw/&amp;tabs=messages&amp;width=340&amp;height=500&amp;small_header=true&amp;adapt_container_width=true&amp;hide_cover=false&amp;show_facepile=false&amp;appId=220401718345274" style="border:none;overflow:hidden" width="320"></iframe></div></div></div></div></div></div><div class='ezbrand-clearfix'></div></div>
複製代碼

http://www.gintiantw.com/

就是愛尚生活 - 94i3Life - 歡迎您 加入 !

您需要登錄後才可以回帖 登錄 | 免費註册 | 新浪微博登陸

本版積分規則


快速回復 返回列表 聯繫我們 搜索

QQ|關于我們|聯絡我們|就是愛尚生活 - 94i3 Life |簡體中文

GMT+8, 2018-4-21 02:01 PM

Powered by 就是愛尚 - 94i3.tw - X3.2

© 2007-2018 愛上誠信。愛上精緻。愛上專業。愛上時尚。愛上分享

94i3就是愛尚是一個經驗分享平台,網友均可以在94i3免費互相學習別人分享之經驗。
※本站只提供空間,網友自由發表使用,也請會員網友尊重論壇規則論壇注意事項,本網站內容均從網路上收集或網友們提供,其內容及言論的完整性以及正確性並不代表本站立場,本站不負任何法律責任,均與本站無關。倘若文章、圖片或是內容言論等有任何問題,請聯絡我們,我們將會第一時間優先處理或刪除。

快速回復 返回頂部 返回列表