PHP禁止外网访问本站接口(防跨域防盗链)
为什么网站要防跨域防盗链?
随着前后端分离技术的兴起,很多手机端网站、小程序、APP访问后台数据都是调用API接口,很多接口都是内部使用的,而不是对外开放,如果没有做好防护措施,你家的接口很可能被其他人盗用,接口被盗用的的话,一方面会增加系统的负担,另一方面是数据被黑客利用,对企业造成一定的损失。本文着重介绍两种php防跨域防盗链的方法,供大家参考!
一、禁止非本站域名访问
<?php
$refer = $_SERVER['HTTP_REFERER'];
if($refer){ $url = parse_url($refer); $host = explode('.',$url['host']); $count = count($host); $domainStr = $host[$count-2].'.'.$host[$count-1]; if ($domainStr != '123.com') {//123.com是你的网站域名exit('拒绝访问!'); }
}
二、禁止直接访问本页面
<?php
if( isset($_SERVER['HTTP_REFERER']) ) {$url_array = explode('http://', $_SERVER['HTTP_REFERER']);$url = explode('/', $url_array[1]);if($_SERVER['SERVER_NAME'] != $url[0]) {// 不是从本站来的exit("Access Denied");}
} else {// 禁止直接访问本页面exit('拒绝访问!');
}
注:如果网址有端口,比如http://www.123.com:88,就需要做如下修改:
<?php
if( isset($_SERVER['HTTP_REFERER']) ) {$url_array = explode('http://', $_SERVER['HTTP_REFERER']);$url = explode('/', $url_array[1]);if(strstr($url[0], $_SERVER['SERVER_NAME']) == false){ // 不是从本站来的exit("Access Denied");}
} else {// 禁止直接访问本页面exit('拒绝访问!');
}
?>
PHP禁止外网访问本站接口(防跨域防盗链)相关推荐
- tomcat manager 禁止外网访问 只容许内网访问
参考:http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html A default Tomcat installation includes ...
- nginx禁止外网访问
1.安装 libmaxminddb 库 apt updateapt install libmaxminddb0 libmaxminddb-dev mmdb-bin 上面安装的软件包是: libmaxm ...
- java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...
0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...
- java写一个外网访问的接口_不是吧不是吧!随便写的一个API竟获得 2.5 亿的访问量...
简评:作者随手在 Stackoverflow 回答了一个问题,几个月之后,竟发现这个回答带来了 2.5 亿次的 API 访问.作者还因此成立了公司专门运作这个 API. 以下我仅代表原作者. 推广很难 ...
- java写一个外网访问的接口_Java程序员如何入门?教你写第一个程序
大家都知道,Java是一门面向对象的编程语言,不仅吸收了C++的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大.简单易用. 另外,Java允许程序员以优雅的思维方 ...
- nginx禁止外网访问登录页面,SQL 注入、XSS 攻击配置
nginx windows 注册服务 下载,关注公众号lovepythoncn,回复nginx #user nobody; worker_processes 1;#error_log logs/err ...
- 华为防火墙USG6000V---内网访问外网---外网访问内网服务器(NAT服务器)示例配置
目录 一.配置要求 二.配置步骤 1. ping通防火墙接口IP地址的条件 2. 内网ping通外网终端的条件 3. 内网ping通DMZ(内网服务器)的条件 三.命令解析 一.配置要求 内网可以pi ...
- iLO4外网访问时不能启动控制台
iLO4外网访问时仅仅打开443接口是不够的,还需要开启80端口才能运行控制台(Remote Console). 为了安全起见,先把 80,443,17990 端口修改为其它端口(Administra ...
- 腾讯云数据库TDSQL-C(原CynosDB)的外网访问配置
笔者的电脑安装mysql数据库总是遇到奇奇怪怪的问题,所以笔者决定不再折腾自己的电脑,使用云数据库,当然对于笔者来说,那肯定是越便宜越好.腾讯云数据库TDSQL-C(原CynosDB)对于学生(24岁 ...
最新文章
- 一文概览深度学习中的五大正则化方法和七大优化策略
- 微软VS.NET(visual studio.net)中FreeTextBox控件的详细使用视频教程
- 用python操作MySQL
- Qt 5.12 LTS(长期维护版本)中Qt Quick的性能改进
- InstallShield 杀掉进程
- python怎么计算图像梯度_opencv python图像梯度实例详解
- Log4j介绍,log4j.properties配置详解
- MySql(15)——Mysql在高并发情况下,防止库存超卖而小于0的解决方案
- effective c++ 第六章
- 在Windows下使用Tortoise Git时,提示认证失败的解决办法
- 模拟调节器和数字计算机如何实现PID控制,模拟PID-调节器设计及数字化实现.doc...
- 蜡笔小新钢达姆机器人_《蜡笔小新》当中出现的组合,小伙伴们最喜欢谁?
- 超级详细配置SSM (Intellij idea + Maven + Spring + SpringMVC + MyBatis + c3p0 )
- python 实现usn读取记录
- 浅析瞬态抑制二极管双向tvs管
- CreateWindow 详解
- Java 自动排序map_跟我学Java编程—应用自动排序的TreeMap
- 怎么把html换成gif,怎么将mp4转换成gif 把mp4转换成高清gif的方法
- 论坛,贴吧,Q群,微信个人号群发
- 最新仿抖音短视频APP双端源码+带安装教程/PHP后端
热门文章
- SSLError: HTTPSConnectionPool(host=‘zh.cppreference.com‘, port=443): Max retries exceeded with url
- antisamy XML 简介
- OPENWRT入门之一------openwrt简介(转载)
- c语言 已知自然对数的底数e用级数表示 忽略绝对值小于,自然对数的底数e大于零 介绍一下自然对数的底e的情况?...
- 61-Linux_管道_有名管道
- adj_voc.pkl
- 实现生产者-消费者模式的五种方式
- 如果iPhone销量下滑,苹果向服务转型将难以成功
- AI 3D 传感器市场竞争白热化,中国掌握自主可控核心技术时不我待!
- 解决redis connection refused问题