详解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 $_SERVER当前完整url的写法
Nov 12 PHP
PHP 批量更新网页内容实现代码
Jan 05 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
Sep 06 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
php对文件夹进行相关操作(遍历、计算大小)
Nov 04 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
php字符串函数 str类常见用法示例
May 15 PHP
PHP的imageTtfText()函数深入详解
Mar 03 PHP
PHP7 标准库修改
Mar 09 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
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
python 正则式 概述及常用字符
2009/05/07 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
利用python求相邻数的方法示例
2017/08/18 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
《最佳路径》教学反思
2014/04/13 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
python Django框架快速入门教程(后台管理)
2021/07/21 Python
Python 正则模块详情
2021/11/02 Python