详解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中使用Oracle数据库(3)
Oct 09 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
跟我学Laravel之安装Laravel
Oct 15 PHP
php实现递归抓取网页类实例
Apr 03 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
Oct 21 PHP
php实现学生管理系统
Mar 21 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 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程序
2006/10/09 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
培养自己的php编码规范
2015/09/28 PHP
Django 中 cookie的使用
2017/08/17 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
Python中的ceil()方法使用教程
2015/05/14 Python
Python多进程机制实例详解
2015/07/02 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
Python3 操作符重载方法示例
2017/11/23 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
详解python中sort排序使用
2019/03/23 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
澳大利亚商务邀请函
2014/01/17 职场文书
公司委托书范本5篇
2014/09/20 职场文书
交通安全横幅标语
2014/10/07 职场文书
工作自我评价范文
2015/03/05 职场文书
详解Golang如何优雅的终止一个服务
2022/03/21 Golang
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers