保护我的REST Api免受外部恶意请求的侵害

时间:2018-03-07 20:25:20

标签: javascript php ajax rest api

我通过Laravel / Vue制作了自己的应用程序。它使用REST Api。注册后我的用户必须输入自己的网站地址。然后他收到API密钥和跟踪代码以粘贴到自己的网站上。

在某种情况下,跟踪代码会向我的网站发送Http Post请求。简单的Javascript。根据该请求,他将该API密钥作为params之一发送。

Server将API Key与referer进行比较。如果API密钥与密钥所有者网站一致,则api脚本可以正常工作。如果没有,它会回复禁止。

可悲的是。我可以从用户的网站获得API密钥(RMB - >显示源代码)。然后我可以运行f.e.邮差,设置令牌,其他参数,假的Origin和Referer它会起作用!

  1. 如何保护我的REST Api免受虚假来电? 我想不使用服务器端。

  2. 如果这是不可避免的,我也想知道为什么人们几乎总是使用两把钥匙(钥匙和秘密)?

  3. 我也会被迫为少数后端语言编写服务器端脚本,或者在RoR或Python服务器上运行那个php脚本不会有问题吗?(一种愚蠢的问题但对我来说非常重要)?

1 个答案:

答案 0 :(得分:0)

如果您计划鼓励在客户端(JS)运行与API对话的脚本,那么您真的没有多少选择。

  1. 如上所述,服务器端可能是最安全的选择
  2. 将其视为用户名/密码对,尽管许多服务也使用单个令牌(因此只有一个凭证)。我建议给客户端一个密钥对,用于验证和生成令牌,需要在所有其他API调用中发送
  3. 这个问题有点令人困惑,抱歉:)