当前位置:首页 > 建站 > 正文内容

何为防盗链以及如何设置防盗链(宝塔设置防盗链)

xuwenyan2年前 (2021-12-20)建站1554

我们在访问一些网站的时候,特别是一些博客网站,往往会看到一些图片加载不出来(一般就是一张裂开的图标样式),除服务器问题导致图片丢失外,还有一个原因防盗链起了作用,这就是所谓的盗链。要想了解防盗链,我们先来了解一下什么叫做盗链。

什么是盗链

盗链就是直接获取别人网页的资源链接在自己的网页上展示,从而到达绕过别人的展示页面,在自己的页面上向用户提供此内容的展示。通常情况下被盗链的一般都是图片、音乐、视频、软件等资源。通过这种盗链手段可以大大减轻自己的服务器压力。

比如在本地建立一个html文件(盗链.html),直接使用本站的图片链接

<html>
    <img src="/zb_users/upload/2021/04/image-1.png"/>
</html>

我们预想是可以正常展示本站的这张图片,然而因为本站做了一些简单的防盗链处理,所以图片在外站无法正常展示。

原图:



实际展示:



什么是防盗链

理解了盗链,防盗链就很好理解了,防盗链就是防止盗链。

防盗链的基本原理

通过Refer或者签名,网站可以检测目标网页访问的来源网页。如果是资源文件,则可以追踪到显示他的网页地址,一旦检测到来源不是本站,即进行阻止或者返回指定的页面。

传统的防盗链配置

nginx配置(文件):

location ~.*.(gif|jpg|png|flv|swf|rar|zip)$
{
    valid_referers none blocked test.com *.test.com;   //加none的目的是确保浏览器可以直接访问资源
    if($invalid_referer)
    {
        #return 403;  // 直接返回403
        rewrite ^/ http://www.test.com/403.jpg;//返回指定提示图片
    }
}

nginx配置(目录):

location /images/
{
    valid_referers none blocked test.com *.test.com;
    if($invalid_referer)
    {
        #return 403;
        rewrite ^/ http://www.test.com/403.jpg;
    }
}

apache配置:

#防盗链配置
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !xuwenyan.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !xuwenyan.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !www.xuwenyan.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !www.xuwenyan.com/.*$ [NC]
RewriteRule .*.(gif|png|jpg|swf)$ http://www.xuwenyan.com/404 [R,NC,L]

宝塔防盗链设置



上述只是传统的防盗链设置,由于部分代理服务器并不会设置Refer,Refer是可以手动修改的,换言之Refer可以伪造的,所以传统的防盗链设置并不是完全安全的,当然应付一般的盗链是住够的。

    文章作者:xuwenyan
    版权声明:本文为本站原创文章,转载请注明出处,非常感谢,如版权漏申明或您觉得任何有异议的地方欢迎与本站取得联系。

    扫描二维码推送至手机访问。

    版权声明:本文由艺文笔记发布,如需转载请注明出处。

    本文链接:https://www.xuwenyan.com/archives/2306

    分享给朋友:

    “何为防盗链以及如何设置防盗链(宝塔设置防盗链)” 的相关文章

    360自动推送js报错的解决方案

    360自动推送js报错的解决方案

    当我们按360站长要求加入了自动推送的js代码后,chrome浏览器会报错,因为360自动收录默认的 js 代码使用document.write,为了安全,在动态js中使用document.write是不被允许的。 如何解决问题? 解决方法就是将360自动推送代码直接添加到源码...

    Word Press获取文章发布时间并生成归档日期链接

    Word Press获取文章发布时间并生成归档日期链接

    Word Press获取当前文章发布时间,获取当前文章发布时间归档链接 发布日期获取 <pre class="wp-block-code">$year = get_the_time( ‘Y’ );$month = get_the_time( ‘m’ );$da...

    Word Press如何按分类在文章页面增加上一篇下一篇翻篇按钮

    Word Press如何按分类在文章页面增加上一篇下一篇翻篇按钮

    我们在阅读别人的Word Press博客文章时会发现,底部常常有上一篇、下一篇按钮,这两个按钮对于对你博客文章感兴趣的读者来说是非常友好的。那么如何在Word Press添加上一篇、下一篇翻篇按钮呢? 你只需要在single.php中你认为显示效果比较好的地方添加以下代码即可: <pr...

    如何实现Word Press文章底部相关文章推荐?

    如何实现Word Press文章底部相关文章推荐?

    如何实现Word Press相关文章推荐?推荐一个比较好用的插件:Yet Another Related Posts Plugin (YARPP),可以在管理后台插件商城搜索到。 使用这款插件后,就可以自动在你的文章底部自动添加相关的文章推荐了,有助提高博客文章的阅读量。 插件功能:...

    推荐一个Word Press自定义关键词的插件G Meta Keywords

    推荐一个Word Press自定义关键词的插件G Meta Keywords

    虽然现在的搜索引擎对关键词已经不那么看重了,但也不排除有一些搜索引擎还是会考察的。其实有一些插件可以根据文字内容自动生成关键词,虽然不是很精确,缺也做到了省事。但是如何根据自己的意愿自定义关键词呢?推荐一个Word Press自定义关键词插件“G Meta Keywords”。 如何安装G...

    Word Press如何在后台安装、使用、卸载插件?

    Word Press如何在后台安装、使用、卸载插件?

    Word Press介绍 WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语...