我有一个网站,允许经过身份验证的用户提交和编辑数据。我还想提供REST API作为收费服务的一部分。 现在的问题是,非付费用户理论上可以使用我的网站使用的相同调用作为API进行身份验证并从外部应用程序发送数据,因为在浏览器中很容易看到端点数据的准确性和准确性发送到网站。
如何保护我的网站免受此类使用,并强制用户使用API进行外部访问?
答案 0 :(得分:0)
实际上,您无法阻止人们向公共API发出请求。您可以在请求到达时验证用户。因此,解决这个问题的方法不止一种。
我会为每个用户提供每个会话的令牌,并在后端验证其余的API请求。
答案 1 :(得分:0)
使用OAuth2。因此,您将为付费用户提供密钥ID和密钥,然后他们将要求访问令牌使用密钥ID和密钥访问API。
了解公钥/私钥加密https://en.wikipedia.org/wiki/Public-key_cryptography
了解oAuth https://oauth.net/2/
我使用护照在laravel中实现oAuth2。护照是oAuth2的实施,也可以用其他语言提供。