详解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 相关文章推荐
新版mysql+apache+php Linux安装指南
Oct 09 PHP
用PHP连接MySQL代码的参数说明
Jun 07 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
Apr 23 PHP
PHP的简易冒泡法代码分享
Aug 28 PHP
php Xdebug的安装与使用详解
Jun 20 PHP
php实现邮件发送并带有附件
Jan 24 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 PHP
PDO::lastInsertId讲解
Jan 29 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
如何分别全角和半角以避免乱码
2006/10/09 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
Python 如何批量更新已安装的库
2020/05/26 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
求职自我评价参考范文
2019/05/16 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
Python关于OS文件目录处理的实例分享
2021/05/23 Python
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers