2010-12-13 41 views
1

我將嘗試將其作爲一個通用問題來描述。在沒有「出售農場」的情況下爲Web服務設計API?

一家公司運行的網站上有很多有價值的信息。該信息從內部專用數據庫查詢。因此從技術上講,數據庫中的信息是有價值的部分。

如果該公司希望開發一個API,開發人員可以使用它訪問其有價值的&有用信息數據庫,那麼該公司應該採取什麼方法?

給開發者提供他們需要的東西很重要。但保持互相競爭的網站實質上使用API​​來竊取所有內容並基本上竊取公司網站上的所有流量也很重要。

是否有某種方法可以以某種方式使API以某種方式將流量驅回到原始公司的網站?一些讓用戶有理由繼續前進的東西。

這是一個設計考慮,我的公司正在努力,我可以想象其他基於Web的服務曾經遇到過。

回答

2

我見過很多公司發出API密鑰並聲明所有開發人員必須遵守的TOS。例如,使用來自API的數據的任何頁面都必須包含您的徽標以及返回到您網站的鏈接。如果發現任何開發人員違反規定,API密鑰可能會被取消,並且您的數據會再次安全。

3
  1. 研究所API密鑰 - 不要公開。也許使註冊過程比「有電子郵件地址的任何人」更復雜。
  2. 速率限制基於密鑰的API。如果您每分鐘運行超過X個請求,您可能會挖掘數據庫。
  3. 不要提供「獲取所有」API。讓用戶知道一些信息。不要透露你的知識。
0

誰打算使用API​​?

解決此問題的一個好的一般方法是限制對最終用戶的數據訪問(而不是允許應用程序或開發人員訪問它)。爲應用程序和用戶分別提供標識,並確保訪問數據的一個子集,同時需要用戶和應用程序密鑰的組合。

遵循這種模式,每個用戶將有權訪問一個非常有限的數據子集(假定他們需要用於他們自己特定用途的數據),並且您可以採取措施來執行此操作。任何數據挖掘嘗試都將變得明顯。

這種類型的方法與服務器端的能力型安全模型很好地相互配合。

相關問題