2014年4月14日 星期一

HeartBleeding 之接臉書 App 體驗

話說其實我還是有幾個其他實驗用的 FB 帳號,之前玩小遊戲用的
最近想說之前都沒真的寫過,想來 Try 一下如何寫個 App 來整 FB

結果,剛開始要寫,發現要產生 Hash值:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

這讓我想到,萬一電腦沒 OpenSSL 怎麼辦呢?或者是我的電腦過去有 OpenSSL 這東西只是我不知道 .....

其實我直觀是想說我應該沒有 OpenSSL,結果一搜竟然有 Orz

是在哪呢?

原來我有裝 VMWare,VMWare的目錄底下有,不過應該還好,再不啟動 VMWare 底下應該不會有啥事

簡單來講,你如果要做一個程式能夠用臉書登入,則需要去在臉書要求開發者權限,然後弄一個 App,臉書的 Tutorial 正常來說是不錯的,但是有一個天殺的問題:

最近的 Eclipse UI 好像又改版了,這改版其實有一些很大的差異,例如你新增一個專案他會多一個 Support 的 library,這其實有點討厭,我目前還沒想到該如何去處理。

但後面就機車了,你要 Reference 到臉書 SDK 時,竟然出現一個訊息說:

Android_support_4.jar 有三個衝突的版本

這時候我的內心突然想到了臉書創辦人的老母,不過似乎這和他沒關係,好像要想一想搞這個版本開發環境的那個人的老母。這不是重點,重點是要排除。

其實我在這之前忽略掉了幾個問題,因為我之前是把臉書 SDK 弄成 jar (其實我不懂他為何不直接給我 jar),然後放進去,後來一 run 都給你說程式當了,後來我嘗試許多不同的解法後才乖乖用遠端 library,後來才發現有衝突版本 ..... Orz ...

總之,他重要的是你要把你 certificate 產生一個特徵值丟給她,之後他會去比對你程式簽的時候用的 signature 是不是這個 hash

然後你在臉書開發者帳號去建立你的 ap 有一個 appid,然後你在去要臉書資訊的時候,他就會依照你給他的 appid 在後台去抓你登陸的 package name 等等

反正如果 hash 出來是那個你傳給他的,appid 對出來的資訊也都一樣,那你就可以抓到資料了。

其實這裡面有個弱點,不過要執行起來不是那麼容易,但是還是有可能因為這樣而做到ㄧ些攻擊

結論:以後開發手機應用程式,最好也要用一個 vm,然後那個環境永遠 Freeze 不要去更新。


順帶一提:我另外有幾個測試用的臉書帳號,是之前玩小遊戲的時候建的,也都是用我的名字,但是那些帳號原則上就是測試用,如果有朋友看到我有登入或是沒回訊息的,請不要想太多,因為那是我在試著寫程式

沒有留言:

張貼留言