【发布时间】:2021-12-31 20:05:48
【问题描述】:
我正在创建一个用于从我的网站获取数据的 JS API。要使用 API,用户需要在他们的网站 html 中包含脚本。然后,API 会将我网站中的数据相应地显示到他们的网站中。我正在使用 ajax 来调用我网站的端点 url。
但是,不安全的问题是,恶意用户可以创建自己的 API 并调用端点 url。
我正在考虑检查服务器 HTTP_REFERER,获取脚本 ID,然后检查脚本的 src。但是,可以通过编程方式更改服务器 HTTP_REFERER。
有没有办法阻止用户更改 JS 脚本位置或检查脚本 src 是否已更改?或者一般来说,如何防止用户使用他们自己的脚本或 cURL 来调用我的端点 url?
我使用 PHP LARAVEL 作为后端语言。
【问题讨论】:
-
API 需要能够被包含该脚本的站点的访问者调用。这使得任何预防方法都需要被您的脚本规避,这反过来又使其成为公共知识,因为您的脚本是公开的。你可能会让它变得更难一些(尤其是从浏览器中,如果你可以预先为特定域启用 CORS)但是任何使用 cURL 的人都可以复制你的脚本所做的任何事情。
-
无法停止以编程方式使用您的 API
-
能否生成一个 md5 或 sha256 哈希作为 js 文件的证明。
-
@TirdadAbbasi 这就是重点?调用者将负责遵守它或将其传回。调用者可以选择忽略它或传回一个虚构的值。
-
没有办法保护您的 API。浏览器发出的任何请求(由浏览器记录以供用户查看)都可以使用 cURL 或类似方法进行复制。
标签: javascript php laravel