为什么网站要防跨域防盗链?

随着前后端分离技术的兴起,很多手机端网站、小程序、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禁止外网访问本站接口(防跨域防盗链)相关推荐

  1. tomcat manager 禁止外网访问 只容许内网访问

    参考:http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html A default Tomcat installation includes ...

  2. nginx禁止外网访问

    1.安装 libmaxminddb 库 apt updateapt install libmaxminddb0 libmaxminddb-dev mmdb-bin 上面安装的软件包是: libmaxm ...

  3. java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...

    0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...

  4. java写一个外网访问的接口_不是吧不是吧!随便写的一个API竟获得 2.5 亿的访问量...

    简评:作者随手在 Stackoverflow 回答了一个问题,几个月之后,竟发现这个回答带来了 2.5 亿次的 API 访问.作者还因此成立了公司专门运作这个 API. 以下我仅代表原作者. 推广很难 ...

  5. java写一个外网访问的接口_Java程序员如何入门?教你写第一个程序

    大家都知道,Java是一门面向对象的编程语言,不仅吸收了C++的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大.简单易用. 另外,Java允许程序员以优雅的思维方 ...

  6. nginx禁止外网访问登录页面,SQL 注入、XSS 攻击配置

    nginx windows 注册服务 下载,关注公众号lovepythoncn,回复nginx #user nobody; worker_processes 1;#error_log logs/err ...

  7. 华为防火墙USG6000V---内网访问外网---外网访问内网服务器(NAT服务器)示例配置

    目录 一.配置要求 二.配置步骤 1. ping通防火墙接口IP地址的条件 2. 内网ping通外网终端的条件 3. 内网ping通DMZ(内网服务器)的条件 三.命令解析 一.配置要求 内网可以pi ...

  8. iLO4外网访问时不能启动控制台

    iLO4外网访问时仅仅打开443接口是不够的,还需要开启80端口才能运行控制台(Remote Console). 为了安全起见,先把 80,443,17990 端口修改为其它端口(Administra ...

  9. 腾讯云数据库TDSQL-C(原CynosDB)的外网访问配置

    笔者的电脑安装mysql数据库总是遇到奇奇怪怪的问题,所以笔者决定不再折腾自己的电脑,使用云数据库,当然对于笔者来说,那肯定是越便宜越好.腾讯云数据库TDSQL-C(原CynosDB)对于学生(24岁 ...

最新文章

  1. 一文概览深度学习中的五大正则化方法和七大优化策略
  2. 微软VS.NET(visual studio.net)中FreeTextBox控件的详细使用视频教程
  3. 用python操作MySQL
  4. Qt 5.12 LTS(长期维护版本)中Qt Quick的性能改进
  5. InstallShield 杀掉进程
  6. python怎么计算图像梯度_opencv python图像梯度实例详解
  7. Log4j介绍,log4j.properties配置详解
  8. MySql(15)——Mysql在高并发情况下,防止库存超卖而小于0的解决方案
  9. effective c++ 第六章
  10. 在Windows下使用Tortoise Git时,提示认证失败的解决办法
  11. 模拟调节器和数字计算机如何实现PID控制,模拟PID-调节器设计及数字化实现.doc...
  12. 蜡笔小新钢达姆机器人_《蜡笔小新》当中出现的组合,小伙伴们最喜欢谁?
  13. 超级详细配置SSM (Intellij idea + Maven + Spring + SpringMVC + MyBatis + c3p0 )
  14. python 实现usn读取记录
  15. 浅析瞬态抑制二极管双向tvs管
  16. CreateWindow 详解
  17. Java 自动排序map_跟我学Java编程—应用自动排序的TreeMap
  18. 怎么把html换成gif,怎么将mp4转换成gif 把mp4转换成高清gif的方法
  19. 论坛,贴吧,Q群,微信个人号群发
  20. 最新仿抖音短视频APP双端源码+带安装教程/PHP后端

热门文章

  1. SSLError: HTTPSConnectionPool(host=‘zh.cppreference.com‘, port=443): Max retries exceeded with url
  2. antisamy XML 简介
  3. OPENWRT入门之一------openwrt简介(转载)
  4. c语言 已知自然对数的底数e用级数表示 忽略绝对值小于,自然对数的底数e大于零 介绍一下自然对数的底e的情况?...
  5. 61-Linux_管道_有名管道
  6. adj_voc.pkl
  7. 实现生产者-消费者模式的五种方式
  8. 如果iPhone销量下滑,苹果向服务转型将难以成功
  9. AI 3D 传感器市场竞争白热化,中国掌握自主可控核心技术时不我待!
  10. 解决redis connection refused问题