详解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 相关文章推荐
下载文件的点击数回填
Oct 09 PHP
php Memcache 中实现消息队列
Nov 24 PHP
国外PHP程序员的13个好习惯小结
Feb 20 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
重新认识php array_merge函数
Aug 31 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
php表单提交实例讲解
Nov 12 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 PHP
php利用imagemagick实现复古老照片效果实例
Feb 16 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
基于laravel belongsTo使用详解
Oct 18 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脚本的10个技巧(5)
2006/10/09 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
PHP查询快递信息的方法
2015/03/07 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
常用jQuery代码分享
2015/07/14 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
python实现360皮肤按钮控件示例
2014/02/21 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
企业治理工作自我评价
2013/09/26 职场文书
数控专业应届生求职信
2013/11/27 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
毕业设计致谢词
2015/05/14 职场文书
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫