为web服务设计一个API,而不使用;出售农场;?

为web服务设计一个API,而不使用;出售农场;?,api,Api,我将试着把这个问题表述为一个一般性的问题 一家公司经营的网站上有很多有价值的信息。此信息是从内部专用数据库查询的。因此,从技术上讲,数据库中的信息是有价值的部分 如果该公司希望开发一个API,开发人员可以使用该API访问其宝贵和有用信息的数据库,那么该公司应该采取什么方法 给开发者他们需要的东西是很重要的。但同样重要的是,防止竞争对手的网站实质上使用API窃取公司网站的所有内容和流量 是否有某种方式可以使用API,以某种方式将流量返回到原始公司的网站?这给了用户继续使用的理由 这是我的公司正在努

我将试着把这个问题表述为一个一般性的问题

一家公司经营的网站上有很多有价值的信息。此信息是从内部专用数据库查询的。因此,从技术上讲,数据库中的信息是有价值的部分

如果该公司希望开发一个API,开发人员可以使用该API访问其宝贵和有用信息的数据库,那么该公司应该采取什么方法

给开发者他们需要的东西是很重要的。但同样重要的是,防止竞争对手的网站实质上使用API窃取公司网站的所有内容和流量

是否有某种方式可以使用API,以某种方式将流量返回到原始公司的网站?这给了用户继续使用的理由


这是我的公司正在努力解决的一个设计问题,我可以想象其他基于web的服务以前也遇到过这种问题。

我见过很多公司发布API密钥并声明所有开发人员都必须遵守的TOS。例如,任何使用API数据的页面都必须包含您的徽标和指向您网站的链接。如果发现任何开发人员违反规则,则可以取消API密钥,您的数据将再次安全。

我看到许多公司分发API密钥并声明所有开发人员必须遵守的TOS。例如,任何使用API数据的页面都必须包含您的徽标和指向您网站的链接。如果发现任何开发人员违反规则,可以取消API密钥,并且您的数据再次安全

  • 学会API密钥-不要公开。可能会使注册过程比“任何拥有电子邮件地址的人”更复杂
  • 基于密钥对API进行速率限制。如果一分钟运行的请求超过X个,则可能是在挖掘数据库
  • 不要提供“获取一切”API。让用户知道一些事情,以获取信息。不要泄露你所知道的
  • 学会API密钥-不要公开。可能会使注册过程比“任何拥有电子邮件地址的人”更复杂
  • 基于密钥对API进行速率限制。如果一分钟运行的请求超过X个,则可能是在挖掘数据库
  • 不要提供“获取一切”API。让用户知道一些事情,以获取信息。不要泄露你所知道的

  • 谁将使用API

    解决这个问题的一个很好的通用方法是限制终端用户对数据的访问(而不是允许应用程序或开发人员访问)。为应用程序和用户分别提供标识,并确保要访问数据的子集,需要同时使用用户密钥和应用程序密钥

    按照这种模式,每个用户都可以访问非常有限的数据子集(大概是他们自己特定使用所需的数据),您可以采取措施来实施这一点。任何数据挖掘的尝试都将变得显而易见


    这种方法与服务器端的功能类型安全模型很好地吻合。

    谁将使用API

    解决这个问题的一个很好的通用方法是限制终端用户对数据的访问(而不是允许应用程序或开发人员访问)。为应用程序和用户分别提供标识,并确保要访问数据的子集,需要同时使用用户密钥和应用程序密钥

    按照这种模式,每个用户都可以访问非常有限的数据子集(大概是他们自己特定使用所需的数据),您可以采取措施来实施这一点。任何数据挖掘的尝试都将变得显而易见

    这种方法与服务器端的功能类型安全模型很好地结合