鍍金池/ 問(wèn)答/HTML/ 在純客戶端(前端頁(yè)面)使用一些服務(wù)的 API 時(shí),如何保護(hù)私鑰或者防止濫用?

在純客戶端(前端頁(yè)面)使用一些服務(wù)的 API 時(shí),如何保護(hù)私鑰或者防止濫用?

想要做一個(gè) Chrome 的翻譯擴(kuò)展,使用有道的服務(wù),之前是抓取的頁(yè)面,但并不穩(wěn)定,所以想使用有道的付費(fèi)服務(wù),但是如果不做服務(wù)端而純?cè)谇岸苏{(diào)用有道 API 的話,如果保護(hù)自己的私鑰呢?

之前想過(guò)的方案,但都有不滿意的地方。

  1. 在服務(wù)端做一層 API 代理,這樣就既保護(hù)了私鑰,還能對(duì)惡意調(diào)用有一定的限制能力,但是,這樣就必須把用戶的數(shù)據(jù) post 到服務(wù)器,而且自己的服務(wù)器不見(jiàn)得有多穩(wěn)定。
  2. 僅有服務(wù)端提供一個(gè)生成簽名的 API,簽名通過(guò)md5(appKey+q+salt+應(yīng)用密鑰)生成(引用),但這樣也必須把用戶查詢的數(shù)據(jù) q 上傳到服務(wù)器。
  3. 擴(kuò)展中讓用戶配置自己的 api 和私鑰,但這樣對(duì)于非開(kāi)發(fā)人員來(lái)說(shuō),太不友好了,還得自己去申請(qǐng)有道的 api

相關(guān)鏈接

回答
編輯回答
紓惘

只能第一種方式,想有道這種API本來(lái)就不是給前端調(diào)用的,不用第一種方式,跨域你就解決不了

2018年3月29日 22:17