首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP实现下载功能以及防止referer盗链

首先网络上关于PHP下载的方法很多,简单说下: 贴代码,注释已经非常清晰了 $filename = "test.gif"; header('Content-Type:image/gif'); //指定下载文件类型...函数比较早,不支持中文,所以如果被下载的文件名是中文的话,需要对其进行字符编码转换, //否则file_exists()函数不能识别,可以使用iconv()函数进行编码转换 //现在PHP...,并释放文件指针和有关的缓冲区 防止referer 防止别人盗用下载的目的无非是减小自己的服务器压力 $ref = $_SERVER [ 'HTTP_REFERER' ]; if ( $ref...= 'blog.zmzhz.com'){ echo '不允许盗链' ; exit (); } } 当然这种的就简单了,别人也可以模仿referer来进行操作...localhost[NC] 把localhost 换成你网站的域名 基本上这样就能阻止大部分的referer盗链了。

97420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    通过 Nginx 防止网络盗链的方法

    随着网站和应用程序内容的增加,防止未经授权的外部网站或应用程序盗用您的资源变得至关重要。Nginx是一个强大的工具,提供了多种方法来实现防盗链保护。...本博客将介绍几种不同的Nginx防盗链方法,以帮助您保护您的资源免受盗链攻击。...方法5:使用CDN 使用内容分发网络(CDN)可以帮助防止盗链,因为CDN通常提供了一些防盗链功能,如设置白名单和黑名单。 方法6:加密和数字签名 对资源进行加密并使用数字签名来验证其完整性和合法性。...方法7:防盗链工具 有一些专门的防盗链工具和服务可供使用,它们提供了各种防盗链保护选项,并使配置更加容易。...- 提供了各种防盗链保护选项,易于使用- 可能具有用户友好的界面 - 部分防盗链工具可能需要付费- 可能涉及第三方服务的使用 声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC

    1.3K20

    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

    2.6K60

    php简单防盗链案例

    作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 什么是防盗链? 代码: 效果: ---- 什么是防盗链?...盗链是指在自己的页面上展示一些并不在自己服务器上的内容。 整体来说,盗链是获得他人服务器上的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容。...通过盗链的方法可以减轻自己服务器的负担,因为真实的空间和流量均是来自别人的服务器。...print_r($urlar);// print_r($_SERVER['HTTP_REFERER']); //$_SERVER['HTTP_REFERER']意思是输出这个运行文件在浏览器上的连接.../*http://localhost/cyg.php*/ //$urlar['host']等于localhost if($urlar['host']!

    95520

    PHP防止注入攻击

    注入攻击不多说了 PHP addslashes() 函数--单撇号加斜线转义 PHP String 函数 定义和用法 addslashes() 函数在指定的预定义字符前添加反斜杠。...语法: long get_magic_quotes_gpc(void); 传回值: 长整数 函式种类: PHP 系统功能 内容说明 本函式取得 PHP 环境设定的变数 magic_quotes_gpc...当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。...magic_quotes_runtime 作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;作用时间:每次当脚本访问运行状态中产生的数据 代码: <?...php /* 有时表单提交的变量不止一个,可能有十几个,几十个。那么一次一次地复制/粘帖addslashes(),是否麻烦了一点?

    2.2K20

    网站防止恶意登陆或防盗链的使用

    下载一些资源时总是出错,如果确认地址没错的话,大多数情况都是遇上防盗链系统了。常见的防盗链系统,一般使用在图片、音视频、软件等相关的资源上。...pathAdd.equals(pathAdd1)){ //判断当前页面的主机与服务器的主机是否相同 } 根据这个原理 可以设置企业白名单 使用Request对象设置页面的防盗链 所谓的防盗链就是当你以一个非正常渠道去访问某一个...这就是防盗链技术了,好了来看一个具体应用: Request.java package net.csdn.request;import java.io.IOException; import...在防盗链设置中,允许空Referer和不允许空Referer有什么区别?...在防盗链中,如果允许包含空的Referer,那么通过浏览器地址栏直接访问该资源URL是可以访问到的; 但如果不允许包含空的Referer,那么通过浏览器直接访问也是被禁止的。

    83120

    Asp.Net Core 通过中间件防止图片盗链

    一、原理   要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件...换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。...如果网站服务器用的是apache,那么使用apache自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理也是检查refer,如果refer的信息来自其他网站则重定向到指定图片或网页上。   ...如果服务器使用的是IIS的话,则需要通过第三方插件来实现防盗链功能了,现在比较常用的一款产品叫做ISAPI_Rewrite,可以实现类似于apache的防盗链功能。...另外对于论坛来说还可以使用“登录验证”的方法进行防盗链。 二、实现防盗链   现在让我们在ASP.NET Core中实现防盗链技术来保护我们的应用程序和站点文件

    1.4K30

    ftp服务器文件盗链,IIS防盗链组件

    一个用于防盗链和限制IIS连接线程的组件,需要IIS用ISAPI的方式加载组件,在2003服务器上测试2008服务器的话需要安装ISAPI扩展。...相关软件软件大小版本说明下载地址 一个用于防盗链和限制IIS连接线程的组件。 本组件已经应用于PC6下载服务器,经过一段时间的测试效果比较明显。...主要功能: 1、可以限制一个IP只允许几个线程来下载文件。...2、限制每一个文件只允许最多几个线程下载。 3、简单的防盗链功能 可以支持需要防盗链的后缀名,可以添加白名单,指定如果盗链就重定向的URL。...另外如果服务器还是只支持 2000线程 但其中一个文件下载量超大就把这2000个线程下完了,那这个站点下面的其它文件就无法下载了。可以用 限制一个文件最多允许的线程限制一下。

    1.5K10

    php防止模拟请求

    1.一些网站是采用检测此IP地址登录的密集度,多次登录后需要输入验证码,那么这时CURL模拟的提交就需要去对验证码图片进行分析,这样就会花费大量时间,当然,这种是对于防止登录被爆破,用户资料泄露的。...3.注意javascipt本身是无法跨域提交的,不是因为不能做到,而是防止别人恶意偷取用户信息,例如点击打开他的网站,用iframe打开正规网页,然后在另一个iframe中进行偷取。...要实现ajax跨域访问,需要设置 header("Access-Control-Allow-Origin:*"); //跨域权限设置,允许所有 要防止 ajax跨域访问,需要设置 header(..."Access-Control-Allow-Origin:http://www.test.com"); //只允许test.com跨域提交数据 4.如果要防止php的模拟请求,比如post请求,那么就可以设置必须为...//判断是否为ajax请求,防止别人利用curl的post抓取数据 if( isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER

    1.3K20

    详解php伪造Referer请求反盗链资源

    有些产品为了防止自己的产品被盗链访问,会采用反盗链措施,如封闭型生态的音乐网站和视频网站,他们已经为了版权付费,自然不希望你免费使用他们的资源。...常规盗链 我们知道,网站提供服务是向服务端请求一个 html 文件,这个文件中包含有 css/js 文件,也包含 img/video 标签,这些静态资源会在 html 文件加载时,依次的发起请求并填充在指定位置上...因此只要拿到这个图片的 URL 并嵌入我们自己的 html 文件中,就能在我们的网站上访问,由于资源是不同的 HTTP 请求独立访问的,因此我们也能过滤源站的 html 文件。这就是最简单的盗链。...我们通过简单的 PHP 例子来完成这个功能: <?...php $url = 'http://t11.baidu.com/it/u=3008889497,862090385&fm=77'; $refer = 'https://www.baidu.com';

    2.4K31

    关于PHP的漏洞以及如何防止PHP漏洞

    这些漏洞不仅仅是针对PHP语言的,本文只是简单介绍PHP如何有效防止这些漏洞。...权限绕过 权限绕过可分为两类吧 (1)后台文件的未授权访问。后台的文件没有包含对session的验证,就容易出现这样的问题 (2)未作用户隔离,例如mail.php?...信息泄露 信息泄露算是比较低危的漏洞了,比如列目录这种就属于部署问题,而与代码审计无关了,而像暴路径、暴源码这种是需要防止的。曾经遇到这样的代码: 表面上似乎没问题,可是当请求变为 xx.php?...a[]=1时,即参数变为数组的时候,就会发生错误以致路径泄露,而用isset判断则不会,当然一个个防太麻烦,建议在配置文件中关闭错误提示,或者在公共文件中加入如下代码以关闭错误显示功能: 之前PHP点点通...(phpddt.com)就有一篇文章:关于PHP防止漏洞策略 ,介绍了register_globals 的危害以及魔术引用Magic Quotes使用说明。

    1.9K110

    点播文件盗链二三事

    所有文件存储在相同的仓库,提供CDN下载服务的oc节点也是共用的,所以存在各个各样的盗链问题。...为了防止用户或者黑客获取到下载链接后恶意访问文件,每个下载链接的url中都会带上一个vkey参数,里面包含了当前这个链接访问文件名hash值、vkey的生成时间、vkey的有效时长、通过此链接下载文件是否进行限速...或许最简单的方法是用公私秘钥(或者AES),这时候客户端知道算法也无法伪造vkey,但是公私秘钥加解密和签名耗cpu,并且要全网部署相关秘钥,怎么防止全网几千台服务秘钥不泄露等问题。...,防止恶意用户利用腾讯视频的host盗播精品库。...图3是源站限制host只能访问其相关的bizid文件之后音乐回源(源站dchttp)host盗链流量掉底。

    2.4K00
    领券