详解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制作静态网站的模板框架(二)
Oct 09 PHP
PHPMailer邮件发送的实现代码
May 04 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
兼容PHP和Java的des加密解密代码分享
Jun 26 PHP
thinkphp模板用法和内容输出实例
Nov 28 PHP
使用php转义输出HTML到JavaScript
Mar 27 PHP
php实现简单爬虫的开发
Mar 28 PHP
php数组函数array_walk用法示例
May 26 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
php微信扫码支付 php公众号支付
Mar 24 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 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登录验证码的实现与使用方法
2016/07/07 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
[20:30]职业巡回赛回顾
2018/08/09 DOTA
Python里隐藏的“禅”
2014/06/16 Python
python实现计算倒数的方法
2015/07/11 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
解决yum对python依赖版本问题
2019/07/05 Python
python批量图片处理简单示例
2019/08/06 Python
python map比for循环快在哪
2020/09/21 Python
Python: glob匹配文件的操作
2020/12/11 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
构造器Constructor是否可被override?
2013/08/06 面试题
JSF界面控制层技术
2013/06/17 面试题
关于安全的演讲稿
2014/05/09 职场文书
亚运会口号
2014/06/20 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
新员工辞职信范文
2015/05/12 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python