详解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 相关文章推荐
3
Oct 09 PHP
PHP中static关键字原理的学习研究分析
Jul 18 PHP
PHP字符串的连接的简单实例
Dec 30 PHP
PHP提交表单失败后如何保留已经填写的信息
Jun 20 PHP
使用PHP Socket 编程模拟Http post和get请求
Nov 25 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 PHP
PHP自定义函数实现格式化秒的方法
Sep 14 PHP
php is_executable判断给定文件名是否可执行实例
Sep 26 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 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执行linux系统命令的常用函数使用说明
2010/04/27 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
Jquery选择器 $实现原理
2009/12/02 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
vue中rem的配置的方法示例
2018/08/30 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
Python实现的栈(Stack)
2018/01/26 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
如何理解python面向对象编程
2020/06/01 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
教师岗位职责
2015/02/03 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
大雁塔英文导游词
2015/02/10 职场文书
运动员代表致辞
2015/07/29 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android