拥有JavaScript客户端库的服务如何保护这些库及其调用的API?具体做法是:
还有其他主要考虑因素吗?
答案 0 :(得分:1)
确保库仅加载在有效站点上。
你不能和你没有。客户端JS的安全性是徒劳的。如果您正在谈论服务器端JS,那么如果任意代码能够执行服务器端,您就会非常谨慎。
确保用户无需打开控制台并开始拨打电话。
大多数服务都需要某种形式的API密钥/令牌,这是一个需要与API请求一起使用的值,以便服务可以检查其有效性。该值通常只能通过作为服务的注册用户来获得。这意味着API密钥与帐户绑定。如果服务发现您正在破解ToS,则他们可以完全阻止您的API密钥或帐户。
对于公共API,有速率限制,跟踪和阻止(即IP或某种指纹)的组合,引用者检查(确保某些内容仅由某个页面加载,而不是在其他地方加载),UA检查(确保浏览器正在下载,而不是机器人,应用程序或其他东西)等等。单独地,这些检查很容易被欺骗,但结合起来可能是一种威慑。
答案 1 :(得分:0)
好吧,既然你的js基本上都是客户端,那么你唯一能做的就是让用户在真正获得你的库之前进行身份验证。对于那些真正想要操纵你的js的人来说,过去的任何事情都只会是一个小小的颠簸。
您拥有并且可以保持控制的地方是保护您的API调用。最流行的表单是基本身份验证,OAuth和IP白名单。