2012-02-16 18 views
0

我敢肯定我要問的答案是否,但也許有人可以給我一個不同的想法,所以我問無論如何。阿賈克斯API沒有揭露鑰匙

我正在開發一個控制面板,通過API調用從第三方web服務獲取信息。我可以使用AJAX進行調用,AJAX會以毫秒爲單位在瀏覽器上返回結果,但我會公開此服務的API密鑰。儘管這是一個訪問受限的內部網,但員工可以嗅探並獲取Private API Key,例如僅觀看Safari的活動窗口。員工是值得信賴的,但我不想冒信賴我的發展安全風險。

我現在正在做的是AJAXing一個PHP,它使用CURL調用進行調用,但需要大約2或3秒才能做到這一點:不是PHP本身,共享主機去第3方服務器,並返回。

有沒有辦法讓瀏覽器直接向API發出請求而不暴露私鑰?我認爲,根據定義,這是不可能的,但我分享的情況下,所以也許有人有一個更好的主意(我試圖避免緩存,因爲信息獲取變化的第二個)

不是我的疑問與此相關:如果我在Mac OS Terminal或本地Apache上通過CURL執行API調用,每次都需要12秒才能得到結果,但瀏覽器在完全相同的計算機和連接中以毫秒爲單位。我並不十分熟悉CURL如何在內部工作,但CURL是一種緩慢的機制,或者在我的Mac中無法正常工作。

感謝

回答

1

不,由於JavaScript代碼被髮送到客戶端機器並在其上運行,因此無法以某種方式公開API密鑰。對它進行加密/模糊處理將毫無意義,因爲知識豐富的用戶只需使用頭部查看器/數據包嗅探器就可以從API請求中提取純文本密鑰。

不向用戶公開密鑰的唯一方法是不讓用戶獲得它,這意味着代理請求。

1

沒有,當瀏覽器requestring該服務的用戶可以嗅出百達的關鍵。所以使用PHP作爲代理是一個很好的解決方案。