PHP防止直接访问.php 文件的方法

为了保证我们用 PHP 写的 API 的安全性要禁止除了接口外的访问方式.

比如我们的项目为 example, 其下有文件夹 dir1、有个接口文件 api.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里的开头添加上以上代码即可.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

1777:文件结构“图”

1777:文件结构“图” 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB描述 在计算机上看到文件系统的结构通常很有用。Micr...

36510
来自专栏linjinhe的专栏

LevelDB:读操作

前面写了两篇文章介绍 LevelDB 的整体架构和接口使用。这篇文章,我们从代码的角度看看 LevelDB 的设计与实现,先从读操作开始。

3253
来自专栏Rgc

python更新数据库脚本两种方法

最近项目的两次版本迭代中,根据业务需求的变化,需要对数据库进行更新,两次分别使用了不同的方式进行更新。 第一种:使用python的MySQLdb模块利用原生的s...

3997
来自专栏用户2442861的专栏

mongodb操作(概述以及相关的命令)

http://blog.csdn.net/ljfbest/article/details/11979609

892
来自专栏Python专栏

【底层原理】数据库的最简单实现

链接:http://www.ruanyifeng.com/blog/2014/07/

1193
来自专栏Android知识点总结

安卓中对于文件夹的综合操作

1052
来自专栏芋道源码1024

数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 路由(一)之分库分表配置

本文主要基于 Sharding-JDBC 1.5.0 正式版 1. 概述 2. TableRule 2.2.1 DataNode 2.2.2 DynamicD...

48916
来自专栏专注 Java 基础分享

Java EE基础之JSP(二)

     接着上篇文章,我们上篇文章讲到了jsp的基本原理以及和servlet的关系,还介绍了jsp的基本语法部分,本篇文章就继续介绍余下的内容。 编译指令Pa...

1818
来自专栏软件开发

MyBatis学习总结(一)——ORM概要与MyBatis快速入门

程序员应该将核心关注点放在业务上,而不应该将时间过多的浪费在CRUD中,多数的ORM框架都把增加、修改与删除做得非常不错了,然后数据库中查询无疑是使用频次最高、...

1633
来自专栏叁金大数据

自学Python十一 Python爬虫总结

  通过几天的学习与尝试逐渐对python爬虫有了一些小小的心得,我们渐渐发现他们有很多共性,总是要去获取一系列的链接,读取网页代码,获取所需内容然后重复上面的...

1581

扫码关注云+社区