【发布时间】:2016-04-12 18:07:18
【问题描述】:
我在我的网站中用 PHP 创建了一个 API
现在我想保护它,因为我不希望其他网站和/或用户可以从不属于我的网站调用它
只能从我的站点拨打电话
我该怎么办?
谢谢。
【问题讨论】:
-
有多种方法可以做到这一点,您可以简单地创建一个硬编码的密码,您必须提供凭证或只有静态 IP
我在我的网站中用 PHP 创建了一个 API
现在我想保护它,因为我不希望其他网站和/或用户可以从不属于我的网站调用它
只能从我的站点拨打电话
我该怎么办?
谢谢。
【问题讨论】:
您可以在 API 的开头使用它
if($_SERVER['REMOTE_ADDR'] != '127.0.0.1'){
die;
}
它将终止所有未从您的服务器调用的 API 尝试。
编辑
或者,如果您希望用户能够调用 API,您可以给他们一个 API 密钥,将其存储在您的数据库中。
例如
$con = mysqli_connect("localhost","my_user","my_password","my_db");
$key = mysqli_real_escape_string($con, $_GET['key']);
$search = mysqli_query("SELECT * FROM user WHERE api_key = '$key'");
if(mysqli_num_rows($search)==0){
// kill the request
die;
}
else{
// Allow the request and do your business
}
【讨论】: