访问API的客户端AJAX请求的安全性

Security for AJAX requests from the client side accessing an API

本文关键字:请求 安全性 AJAX 客户端 API 访问      更新时间:2023-09-26

假设您希望第三方站点复制并粘贴您提供的javascript代码片段。这段代码使用AJAX请求访问服务器上的JSON API。您将如何实现安全性,以便在将API使用与已注册并接收API密钥的网站关联时,您将有效地禁止网站滥用另一个网站的API密钥/使用?从客户端来看,这种安全性是不可能的吗?站点必须从服务器访问API吗?

您还可以在您的服务器站点上检查请求的HTTP referrer。
我不认为改变javascript代码就能解决这个问题。
但它不能阻止某人从自定义浏览器或某些http客户端发送自定义包。

实现服务器端解决方案是可能的,并不太难,但它会阻止许多站点使用您的脚本。
你可以让他们从他们的服务器发送请求
或者让他们将密钥保存在他们的服务器上,在将密钥发送给客户端之前对密钥进行哈希(哈希密钥在一段时间间隔后更改)…

您可以直接检查window.location,或者其中的某个组件

我能想到的唯一加强这种安全性的方法是通过IP地址,但这充其量是有风险的,因为有很多原因可以说明这是一个糟糕的设计。

这是服务器端保护javascript文件的安全性。你可以让一个web服务提供javascript,这样它就可以在将文件发送到客户端之前进行检查。