Php 实现API密钥以限制对webservice URL的访问

Php 实现API密钥以限制对webservice URL的访问,php,mysql,web-services,api,security,Php,Mysql,Web Services,Api,Security,本质上,我想限制对我的应用程序所连接的Web服务的原始访问。实际上,应用程序正在从“”拖动数据。只要点击链接,任何人都可以在信息打开时查看信息 我想添加一个API密钥,我会将其编码到应用程序中 我的问题很简单,我如何设置一个API密钥来防止人们在不附加密钥的情况下访问Web服务?数据保存在MySQL中,PHP脚本显示数据 谢谢你的帮助 API密钥只是计算机之间密码的一个花哨术语。您所要做的就是想一个随机字符串,将其与您的请求一起发送,并让响应服务器期望相同的字符串或拒绝提供响应 例如,如果您的A

本质上,我想限制对我的应用程序所连接的Web服务的原始访问。实际上,应用程序正在从“”拖动数据。只要点击链接,任何人都可以在信息打开时查看信息

我想添加一个API密钥,我会将其编码到应用程序中

我的问题很简单,我如何设置一个API密钥来防止人们在不附加密钥的情况下访问Web服务?数据保存在MySQL中,PHP脚本显示数据


谢谢你的帮助

API密钥只是计算机之间密码的一个花哨术语。您所要做的就是想一个随机字符串,将其与您的请求一起发送,并让响应服务器期望相同的字符串或拒绝提供响应

例如,如果您的API密钥是永远安全的
密码123
,您可能会收到如下请求:

并将服务器端代码设置为:

if (!isset($_GET['key']) || ($_GET['key'] !== 'password123')) {
    die('You shall not pass!');
} else {
    // do your magic
}

这只会为那些拥有密钥的人运行API脚本的内容。

有固定的毒刺总比没有好,但是任何检查数据的人都可以嗅探到它并偷走您的密钥

您可以通过将密钥编码到应用程序中来实现质询响应设置,让应用程序向服务器发出请求,然后服务器返回一个随机字符串作为响应

应用程序使用密钥作为因子对字符串执行计算,并将结果返回给服务器


服务器具有密钥,因此知道预期结果,如果匹配,则提供请求。

您也可以使用API网关,有许多开源解决方案(Kong、Apigee等)它将位于您的API前面,并将为您的API提供安全性和更多功能。

这正是我想要的。非常感谢。