zoukankan      html  css  js  c++  java
  • 05 referer头与防盗链

    像上图中的这个效果,当我们在网页里引用站外图片时,常出现这样的情况.

     

    ??? 服务器是怎么样知道,这个图片是在站外被引用的呢?

     

    还有在网站的统计结果,统计用户从何而来,如下图

    ??? 统计时,是如何得知用户从哪儿来到的本网站呢?

    在Http协议中,头信息里,有一个重要的选项: Referer

    Referer: 代表网页的来源,即上一页的地址

     

    如果是直接在浏览器上输入地址,回来进来,则没有Referer头.

     

    这也是: 为什么服务器知道我们的图片是从哪儿引用的,也知道我们的客户从哪个网站链接点击过来的.

     

     

    问题: 如何配置apache服务器,用于图片防盗链?

    原理: 在web服务器层面,根据http协议的referer头信息,来判断.

    如果来自站外,则统一重写到一个很小的防盗链提醒图片上去.

     

    具体步骤:

    1:打开apache 重写模块 mod_rewrite

     

    前面的”#”去掉,并重启apache

    2:在需要防盗的网站或目录,写.htaccess文件,

    并指定防盗链规则

     

    如何指定?

    自然是分析referer信息,如果不是来自本站,是重写

     

    重写规则:

    哪种情况重写:

    是jpeg/jpg/gif/png图片时

    是referer头与localhost不匹配时

    重写

     

    怎么重写?

    统一 rewirte到 某个防盗链图片

    如下面的例子:[ 新建一个 .htaccess文件  写到php程序的目录中]

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} .*.(jpg|jpeg|gif|png) [NC]

    RewriteCond %{HTTP_REFERER} !localhost [NC]

    RewriteRule .*  http://www.zixue.it/static/image/common/zixuelogo.png





  • 相关阅读:
    android 自定义日历控件
    android 常用类
    真假空格风波
    设计模式的初衷---“委托”有感
    pymysql.err.InterfaceError: (0, '')
    微信文章收藏到有道云笔记PC版只保留了标题
    SQL Server数据库字典生成SQL
    nhibernate常见错误
    NUnit
    使用ffmpeg截取视频
  • 原文地址:https://www.cnblogs.com/hgj123/p/4331137.html
Copyright © 2011-2022 走看看