剛好今天寫 code 的時候回去重新讀 OAuth Core 1.0a,把之前一堆環節串起來,才知道為什麼無名會設計 Base64 上傳...
OAuth Core 1.0a 內提到有三種方式可以傳遞 OAuth Protocol Parameter,而且是有優先順序的,從最優先開始分別是:
- In the HTTP Authorization header as defined in OAuth HTTP Authorization Scheme.
- As the HTTP POST request body with a content-type of application/x-www-form-urlencoded.
- Added to the URLs in the query part (as defined by [RFC3986] section 3).
由於檔案上傳的部份沒簽到,所以可以在傳輸過程中間被換掉 (整個 request 看起來仍然合法),所以一般會加上一個 extra parameter 傳 POST 資料的 Secure Hash。
但之前 Manic 就跟我抱怨 PHP 上面的 OAuth Library 都遺忘了檔案上傳這塊,他得自己建立 POST body 丟出去 XDDD
於是我就瞬間理解為什麼要用 Base64 上傳了... XD
PS:這是一種可能性,也有可能是 Y! policy 覺得要用 OAuth 直接簽進去才安全,這只有當初定 API spec 的人才知道了...
沒有留言:
張貼留言