zoukankan      html  css  js  c++  java
  • 3种常用的防盗链的方式

    场景说明:网站访问人数很少,但是网页访问很慢,很有可能被盗链了,如果网页被盗链,web服务器的访问日志里会发现疯狂的访问请求正从四面八方涌过来,web服务器为了迎接这批访客而没有时间处理正常的页面,这种状况可能会一直持续好几个周时间。

    被盗链的几种可能情况

    1、在人气非常旺的网站、论坛、社区的网页里直接引用了(使用标记)你网站上的图片,或者直接在其他网页(使用flash或媒体播放插件)里嵌入了你网站上的mp3。
    2、在人气非常旺的网站、论坛、社区里提供了你的资源的下载地址。
    3、你网站的资源可能被一些下载软件列入了“资源候选名单”,当其他人用下载工具下载相同的文件时,下载软件会自动找上门并且从你的服务器下载。

    解决方式

    1、判断引用地址

    所谓判断引用地址,就是判断浏览器请求时HTTP头的Referer字段的值,这个值在php里面可以用 $_SERVER['HTTP_REFERER']属性取得。几个例子来说,在正常情况下当用户在浏览 http://1111.com/abc.html 时点击一个链接去到 http://222.com/jacky.mp3 文件时,浏览器在发出请求jacky.mp3 资源时还会附带当刻浏览器所处的页面地址(即http://1111.com/abc.html),所以当你的网站程序接收到下载 jacky.mp3 资源请求的时候,先判断http的referer字段的值,如果是从 自己的域名(222.com)过来的,则可以认为是合法的连接请求,否则就返回一个错误的提示信息。

    这种方法通常用于图片、 mp3这种容易被人用html“嵌入”到其他网站的资源,使用这种方法可以防止你的图片直接出现在别人的网页里(或者防止mp3直接被其他网站嵌入到 flash播放器里),不过访客使用下载工具还是可以轻松下载,因为现在的下载工具一般会自动用你的域名构造一个引用地址,所以如果想再进一步防范的话,可以使用一个对应表限制每个资源的引用地址,例如将 jacky.mp3 的引用地址限制为 http://222.com/11.htmlid=12345,这样下载工具就不太可能构造一个“正确”的引用地址了。

    2、使用登录验证

    这个方法常见于论坛、社区。当访客请求网站上的一个资源时,先判断此请求是否通过登录验证,如果尚未登录则返回一个错误提示信息。

    3、使用图形验证码

    使用这个方法可以保证每次下载都是“人”在你的网站上下载,而不是下载工具。因为网上很多介绍使用图形验证码的方法,所以这里就不再重复了。这个方法的缺点是比较容易让正常的用户感到麻烦。

  • 相关阅读:
    vuejs 实战 双向数据绑定
    ubuntu16安装cuda,cudnn,gpu版opencv
    ubuntu编译安装nginx并且配置流服务器
    安装使用mongodb
    c++ 编译安装ffmpeg
    apache2 日志文件太大的解决方案
    sql注入
    制作自己的电子词典
    python传递可变参数
    工厂模式
  • 原文地址:https://www.cnblogs.com/chenhaoyu/p/8618549.html
Copyright © 2011-2022 走看看