详解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.NET的入门教程
Oct 09 PHP
php 静态页面中显示动态内容
Aug 14 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
PHP转换IP地址到真实地址的方法详解
Jun 09 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
php实现zip文件解压操作
Nov 03 PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 PHP
php blowfish加密解密算法
Jul 02 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
Laravel如何友好的修改.env配置文件详解
Jun 07 PHP
php获取ajax的headers方法与内容实例
Dec 27 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
linux php mysql数据库备份实现代码
2009/03/10 PHP
php获取数组中重复数据的两种方法
2013/06/28 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
django数据库migrate失败的解决方法解析
2018/02/08 Python
Python实现的购物车功能示例
2018/02/11 Python
浅析python的优势和不足之处
2018/11/20 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
python3使用GUI统计代码量
2019/09/18 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
《走一步再走一步》教学反思
2014/02/15 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python