- 浏览: 57725 次
- 性别:
- 来自: 深圳
最新评论
背景:今天为了了解高并发,大访问量的技术中,有提到防盗链这块,就先整理清楚这块的内容..
什么是盗链?(具体请参考)
http://www.cnblogs.com/AngelLee2009/archive/2011/10/13/2209594.html
第一部分:如何防盗链
第一种方式,通过服务器配置来禁止非法访问,我这里要以Nginx配置为例;
具体请参考:http://blog.csdn.net/longjef/article/details/53284108
第二种方式: 通过动态防护处理的方式,但是可能会影响网站的性能;
第二部分: 如何盗链
无非就是动态模拟头部等方式去读取内容,如果系统做了第二种动态防护的方式,就得想其他的方式了,目前没有好想法~_~
代码:
nginx配置防盗链
location ~* \.(gif|jpg|jpeg|png|bmp|swf)$ {
valid_referers none blocked my_mobile.com ;
if ($invalid_referer) {
return 403;
}
}
盗链防护代码
<!--正常的图片访问方式-->
<img src="http://my_mobile.com/static/images/getheadimg.jpg">
<!--防盗链的图片访问方式-->
<img src="http://my_mobile.com/test/get_img?id=xxx">
//这里只是举个简单的例子,至于id验证,逻辑判断和面向对象写法,自己实际去做的时候去优化
//实际路由,请自己复制代码到项目中进行测试
public function get_img($img_name='getheadimg.jpg') {
$file_name = FCPATH."/static/images/".$img_name;
$img_data = fread(fopen($file_name,'rb'),filesize($file_name));
$img_info = getimagesize($file_name);
header("content-type:{$img_info['mime']}");
echo $img_data;
}
盗链代码
//PHP如何盗链
public function index() {
//第一种情况:没做防盗链处理的盗链方式,直接访问就可以了
// echo '<img src="http://my_mobile.com/static/images/add.png">';
//第二种情况: 做了nginx防盗链处理的盗链方式,还是可以盗链
$url="http://my_mobile.com/static/images/getheadimg.jpg";
//方式一
// $dir = pathinfo($url);
// $refer = $dir['dirname'].'/';
// $ch = curl_init($url);
// curl_setopt ($ch, CURLOPT_REFERER, $refer);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
// $data = curl_exec($ch);
// curl_close($ch);
// header("Content-type: image/jpeg");
// print( $data );
//方式二:
header('Content-type: image/jpeg');
echo file_get_contents($url);
}
什么是盗链?(具体请参考)
http://www.cnblogs.com/AngelLee2009/archive/2011/10/13/2209594.html
第一部分:如何防盗链
第一种方式,通过服务器配置来禁止非法访问,我这里要以Nginx配置为例;
具体请参考:http://blog.csdn.net/longjef/article/details/53284108
第二种方式: 通过动态防护处理的方式,但是可能会影响网站的性能;
第二部分: 如何盗链
无非就是动态模拟头部等方式去读取内容,如果系统做了第二种动态防护的方式,就得想其他的方式了,目前没有好想法~_~
代码:
nginx配置防盗链
location ~* \.(gif|jpg|jpeg|png|bmp|swf)$ {
valid_referers none blocked my_mobile.com ;
if ($invalid_referer) {
return 403;
}
}
盗链防护代码
<!--正常的图片访问方式-->
<img src="http://my_mobile.com/static/images/getheadimg.jpg">
<!--防盗链的图片访问方式-->
<img src="http://my_mobile.com/test/get_img?id=xxx">
//这里只是举个简单的例子,至于id验证,逻辑判断和面向对象写法,自己实际去做的时候去优化
//实际路由,请自己复制代码到项目中进行测试
public function get_img($img_name='getheadimg.jpg') {
$file_name = FCPATH."/static/images/".$img_name;
$img_data = fread(fopen($file_name,'rb'),filesize($file_name));
$img_info = getimagesize($file_name);
header("content-type:{$img_info['mime']}");
echo $img_data;
}
盗链代码
//PHP如何盗链
public function index() {
//第一种情况:没做防盗链处理的盗链方式,直接访问就可以了
// echo '<img src="http://my_mobile.com/static/images/add.png">';
//第二种情况: 做了nginx防盗链处理的盗链方式,还是可以盗链
$url="http://my_mobile.com/static/images/getheadimg.jpg";
//方式一
// $dir = pathinfo($url);
// $refer = $dir['dirname'].'/';
// $ch = curl_init($url);
// curl_setopt ($ch, CURLOPT_REFERER, $refer);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
// $data = curl_exec($ch);
// curl_close($ch);
// header("Content-type: image/jpeg");
// print( $data );
//方式二:
header('Content-type: image/jpeg');
echo file_get_contents($url);
}
发表评论
文章已被作者锁定,不允许评论。
-
苹果开发者账号申请流程
2019-03-20 20:31 668一、 开发者账号类型选择 邓白氏码 DUNS number,是 ... -
502网关错误之一
2018-05-22 23:16 4172018/05/22 23:23:38 [error] 215 ... -
svn创建新项目与授权
2017-07-27 17:50 457(1)查找Svn Serve 安装目录 ps -aux | g ... -
top, vmstat 命令
2017-05-18 15:35 430top: 各个进程占用系统资源的排行 作用主要用来监控系统实时 ... -
linux安装php redis扩展详细步骤
2017-04-27 23:13 511文章背景: 因为架构workerman框架,写redis底层服 ... -
centos下源码安装php的详细步骤
2017-03-16 17:05 655背景: 因为要写PHP扩展,之前用的是yum安装lnmp,本次 ... -
ubuntu下netbeans字体抗锯齿设置
2014-10-10 13:10 624自从开始使用ubuntu 11.10以来。netbeans ... -
nginx重载配置
2014-09-15 10:53 640/usr/local/nginx/sbin/nginx -t ... -
nginx 安装
2014-09-14 22:14 0(1)sudo apt-get install nginx ( ... -
sed-i(替换字符串),直接操作文件
2013-12-30 18:48 1588sed -i "1546s/\$\_GET\['la ... -
linux下给phpcurl安装、gd(ubuntu)
2013-11-23 11:48 596先查看自己的php5是否已经安装了curl。方法如下:1.在 ... -
LINUX 版QQ安装方法(待测试)
2013-10-12 15:24 531LINUX 版QQ安装方法 sudo add-apt-re ... -
OWA扫描工具
2013-10-09 21:00 884Ubuntu下安装扫描工具: https://www ... -
ubunt配置虛你域名步驟
2013-09-30 12:31 677配置SSL http://www.linuxidc.co ... -
ubuntu 定时执行php
2013-07-15 11:04 635Ubuntu下使用crontab为PHP建定时任务 ... -
linux中查看文件时显示行号
2013-07-15 11:05 1876[root@1-min etc]# cat -n rsys ... -
linux使用过的命令
2013-07-15 11:10 479查找当前目录下.svn 为结尾的文件并且删除find . ... -
linux笔记
2013-12-30 18:46 386笔记一:#!/bin/bash# Program:# Pr ... -
ubuntu 12.04 安装phpmyadmin
2013-05-21 10:29 829第一步: sudo apt-get install liba ... -
Ubuntu 10.04 下安装 NetBeans (FOR PHP)最新版全程图解
2013-05-16 12:54 989NetBeans目前是Java界最流行的开源Java ID ...
相关推荐
主要介绍了 java 防盗链详解及解决办法的相关资料,这里介绍了防盗链的概念、产生原因及Http中的referer,最后介绍解决办法,需要的朋友可以参考下
为了实现图片防盗链,根据网络上搜集的资料加上自己的实践,终于实现了iis下的图片防盗链功能。 实施步骤: 1.下载比较出名的www.helicontech.com提供的ISAPI Rewrite软件的免费版本(免费版本虽然有一些功能上...
这是一个不错的破解图片盗链JS。利用html就可以破解盗链。
是PHP破解防盗链的代码的源码,解决采集图片盗链不显示的方法,很简单,特别实用。
有些粗心大意的人转贴时,简单地把图片复制了过来。可如果该网站的图片设置为防止外部链接,我们遇到转载的好帖,又找不到原出处,难道只有哀叹的份么?
微信图片防盗链破解,微信文章图片转载不显示解决方案
微信防盗链处理,微信图片盗链,php微信图片盗链,盗链图片处理信息
破解图片反盗链 ASP 、 JSP 、PHP 这几种语言的破解都在里面了,很简单,特别实用
在IIS里成功加载本插件后可以有效的防止自己站点里的图片文件被其他站点盗链,并可自定义当图片被盗链时显示的图片,非常适用于图片资源类站点,可有效的保护自己站点的图片资源。 本软件自带人性化设置面板
超强流媒体防盗功能:flash/图片/多媒体文件,您都可以安心地将这些文件放置在您的网站上,而不必担心被别人偷盗链。 无须任何包含文件,纯 HTML 页面也能防流媒体盗链。 独有的偷盗者日志记录,火眼金晶,让你...
9. 支持流媒体防盗链,包括Flash和电影在线播放,音乐在线播放,流媒体盗链采用64位加密技术。 10. 采用C++编写,处理速度快,占用资源极少,效率要比.net php asp 这类脚本解释的效率要高得多。 11. 使用该过滤器...
网站盗链会大量消耗被盗链网站的带宽,而真正的点击率也许会很小,严重损害了被盗链网站的利益。本文主要介绍用PHP实现防盗链的方法以及基本思想,希望对你有帮助,一起来看。
要求asp.net环境,并要在IIS里设置网站属性,可以用来限制图片等文件的盗链,通过referrer判断,如果没有引用页返回真实文件,如果引用页的域名不是本网站域名则返回wbtbForbidden.jpg这个图片,文件不存在返回...
网上有许多设置图片防盗链方法,这里提供两种,一是利用.htaccess文件进行一些简单的设置便能够轻易防止别人盗取自己网站原创图片的链接;二是使用插件WP Hotlink Protection。 一.修改.htaccess文件 怎么实现?首先...
两个网站 A 和 B, B网站引用了A网站上的图片,这种行为就叫做盗链。 防盗链,就是要防止B引用A的图片。 1.如何区分哪些是不正常的用户? HTTP Referer是Header的一部分,当浏览器向Web服务器发送请求的时候,...
☆ 功能如下:☆ 使用 Handler 处理程序处理图片;
本篇文章主要介绍了Asp.Net Core 通过中间件防止图片盗链的实例,具有一定的参考价值,有兴趣的可以了解一下。
wx-image-bridge解决微信外链公众号图片防盗链图片无法正常展示的问题,其他网站的图片应该也适用,未测试。使用方法在启动服务后,将图片地址按如下格式拼接在服务器地址后,可以正常访问。示例:...
流媒体防盗功能:flash/图片/多媒体文件,您都可以安心地将这些文件放置在您的网站上,而不必担心被别人偷盗链,彻底防迅雷等软件。 彻底防迅雷、FlashGet等;支持远古等点播系统(详见安装目录下帮助文件) 无需重启...
在IIS里成功加载本插件后可以有效的防止自己站点里的图片文件被其他站点盗链,并可自定义当图片被盗链时显示的图片,非常适用于图片资源类站点,可有效的保护自己站点的图片资源