详解PHP防止直接访问.php 文件的实现方法


Posted in PHP onJuly 28, 2017

详解PHP防止直接访问.php 文件的实现方法

为了保证我们用 PHP 写的 API 的安全性要禁止除了接口外的访问方式.

比如我们的项目为 example, 其下有文件夹 dir1、有个接口文件 api.php. 结构为: 输入图片说明

详解PHP防止直接访问.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里的开头添加上以上代码即可.

以上就是PHP防止直接访问.php 文件的实现方法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
在PHP中养成7个面向对象的好习惯
Jul 17 PHP
关于UEditor编辑器远程图片上传失败的解决办法
Aug 31 PHP
显示程序执行时间php函数代码
Aug 29 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
php数组随机排序实现方法
Jun 13 PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
PHP 7.4中使用预加载的方法详解
Jul 08 PHP
php源码的安装方法和实例
Sep 26 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 PHP
php简单实现单态设计模式的方法分析
Jul 28 #PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 #PHP
使用php自动备份数据库表的实现方法
Jul 28 #PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 #PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 #PHP
laravel 5.4中实现无限级分类的方法示例
Jul 27 #PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
Jul 27 #PHP
You might like
PHP编码规范-php coding standard
2007/03/16 PHP
php htmlspecialchars加强版
2010/02/16 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
php验证手机号码
2015/11/11 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
PHP聊天室简单实现方法详解
2018/12/08 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
xml和web特殊字符
2009/04/28 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
原生js实现随机点名
2020/07/05 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
Python自定义主从分布式架构实例分析
2016/09/19 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
使用Python更换外网IP的方法
2018/07/09 Python
简单了解Python生成器是什么
2019/07/02 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
Linux操作面试题
2012/05/16 面试题
幼儿园家长安全责任书
2014/07/22 职场文书
2014年保洁工作总结
2014/11/24 职场文书
MYSQL 表的全面总结
2021/11/11 MySQL
利用js实现简单开关灯代码
2021/11/23 Javascript