Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阻止json API的不必要使用_Json_Security_Blocking - Fatal编程技术网

阻止json API的不必要使用

阻止json API的不必要使用,json,security,blocking,Json,Security,Blocking,我有一个网站,您可以使用ajax从我们的服务器请求数据作为json(仅在我们的网站上使用)。现在我发现人们开始使用我们的请求从系统中获取数据。有没有办法阻止用户使用我们的公共json API。我一直在思考的想法是: 某种校验和 页面上必须匹配服务器端的会话唯一javascript值 某种具有1000个不同有效值的滚动密码 所有这些都不是100%安全的,但使我们的数据更难使用。任何其他想法或解决方案都会很好 (您可以做的请求是查找和翻译邮政编码、电话号码、ssn等)您可以使用谷歌用于限制访问其

我有一个网站,您可以使用ajax从我们的服务器请求数据作为json(仅在我们的网站上使用)。现在我发现人们开始使用我们的请求从系统中获取数据。有没有办法阻止用户使用我们的公共json API。我一直在思考的想法是:

  • 某种校验和
  • 页面上必须匹配服务器端的会话唯一javascript值
  • 某种具有1000个不同有效值的滚动密码
所有这些都不是100%安全的,但使我们的数据更难使用。任何其他想法或解决方案都会很好

(您可以做的请求是查找和翻译邮政编码、电话号码、ssn等)

您可以使用谷歌用于限制访问其API的相同方法

  • 强制每个用户拥有有效的API密钥,以请求数据
  • 当用户请求API密钥时,生成API密钥并将其存储在数据库中
链接:

通过这种方式,您可以监视API的使用情况,并对其施加使用限制


正如@c69所指出的,您还可以将生成的API密钥绑定到API用户的域。然后,您可以检查Referer URL(
$\u SERVER['HTTP\u Referer']
,在PHP中),如果请求不是从API用户域发出的,则可以拒绝该请求。

为什么不检查请求的URL是否是您自己的?@gabykag.Petrioli:仍然有机会,用户可以使用同一个域从控制台调用API。这个问题很有趣,但对于这种主观问题来说,这不是一个合适的地方。@Dev,的确。。不确定Andreas想要多少强健的解决方案。。(也可以操纵推荐人或根本不在场……)解决方案不必100%安全。现在它对所有人开放,但这并不好。