使用每日随机API密钥限制API访问我的前端应用程序



我正在创建一个API,我的Vue.js应用程序只能访问该API,用于显示电影时间、视频点播链接等数据。没有私人敏感信息,但我希望避免其他人和机器人使用我的资源获取免费数据。我知道将API限制到我自己的一页前端应用程序几乎是不可能的,因为有些人总是可以:

  • 从页面源获取API密钥
  • 将referrer标头假脱机到我的API受限的标头

因此,我想通过让后端服务器每天中午生成API密钥来"减少损害",即使用我的API的机器人数量。然后,当PHP加载Vue.js应用程序时,它会将API键插入到Vue.js代码中,Vue.js代码将使用它来查询我的Python API。如果Vue收到"不正确的API密钥"错误(当页面在11:59加载并在12:01发送请求时(,Vue.js将刷新页面以获得新密钥。

这样,如果有人从源代码中获取API密钥,它无论如何都将在不到24小时内过期。当然,有人可以每天刮取页面以获得API密钥,并且仍然使用API,但我觉得这会阻止很多机器人和垃圾邮件发送者。

有人试过这样的东西吗?这听起来是一个可行的解决方案,还是我在StackOverflow上找不到更好的解决方案?

从与API服务器相同的位置(服务器、专用DNS(进行服务器端渲染怎么样?

您可以在服务器函数本身中编写fetch(api)

最新更新