为了保证我们用 PHP 写的 API 的安全性要禁止除了接口外的访问方式.
比如我们的项目为 example
, 其下有文件夹 dir1
、有个接口文件 api.php
. 结构为:
这时候我们要求只能通过 example/api.php
来调用file.php
里的服务,不能直接通过example/dir1/file.php
来访问.
在 php 里有这样一个变量$_SERVER
,这是个数组变量, 里面有各种键值对, 具体的可以搜索一下资料. 那么我们现在可以通过$_SERVER
里的SCRIPT_NAME
来获取脚本名称. $_SERVER['SCRIPT_NAME']
,其值会是类似 xxx/api.php
,那么我们就可以通过判断访问链接里是否含有api.php
来判断这个访问是否为合法的访问, 如果合法则继续执行, 不合法则阻断.
具体代码如下:
if(strpos($_SERVER['SCRIPT_NAME'], 'api.php') === false){
echo "error";
exit;
}
在 file.php
里的开头添加上以上代码即可.