【问题标题】:Is there a way to prevent user from changing JS script location?有没有办法阻止用户更改 JS 脚本位置?
【发布时间】: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


【解决方案1】:

我认为在客户端没有特定的方法可以防止这种情况发生。保护后端总是正确的。要授权用户,请尝试使用 OAuth 2.0; Laravel 护照是一个很好的实现。这将保护您的 API。

【讨论】:

    猜你喜欢
    • 2017-06-08
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    相关资源
    最近更新 更多