详解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 相关文章推荐
利用Ffmpeg获得flv视频缩略图和视频时间的代码
Sep 15 PHP
php批量上传的实现代码
Jun 09 PHP
PHP防止跨域提交表单
Nov 01 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
php无限级评论嵌套实现代码
Apr 18 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
Jun 12 PHP
laravel5.6实现数值转换
Oct 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
单位速度在实战中的运用
2020/03/04 星际争霸
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
利用vueJs实现图片轮播实例代码
2017/06/03 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
python多线程与多进程及其区别详解
2019/08/08 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
小学体育组工作总结
2015/08/13 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
Python max函数中key的用法及原理解析
2021/06/26 Python
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技