防止直接访问课程视频|电子学习

时间:2016-06-24 04:44:30

标签: php .htaccess video

电子学习平台:课程讲师将在为课程创建课程时上传视频。

{
    "success" : [
        {
            "courseid" : "c1",
            "lessonid" : "l1",
            "title" : "Sample lesson #1",
            "video" : "http://www.example.com/lesson/l1/video.mp4",
            "videothumbnail" : "http://www.example.com/lesson/l1/videothumbnail.png"
        }
    ]
}

当学生对课程 c1 的课程 l1 进行GET请求时,服务器将回复以下JSON响应(如果学生已登录并且报名参加课程)

#prevent direct access to the lesson folder and its contents
order deny,allow
deny from all
allow from XXX.XXX.XXX.XXX

要求

仅可从中获取课程视频 的 named components 学生登录并注册课程时的页面。

我做了什么

我已阻止直接访问课程视频,方法是在 .htaccess 文件中写下以下一行,该文件放在课程文件夹中。

#prevent direct access to the lesson folder and its contents
deny from all

其中,XXX.XXX.XXX.XXX是服务器的IP地址。

我甚至尝试了以下内容:

Forbidden

You don't have permission to access /lesson/l1/video.mp4 on this server.

现在,如果在浏览器中复制粘贴视频链接,则会显示以下错误消息。

Failed to load resource: the server responded with a status of 403 (Forbidden)

因此,当我在浏览器中复制粘贴视频链接时,它成功阻止了视频的直接访问http://www.example.com/course?courseid=c1&lessonid=l1

问题

但是当我尝试从课程页面http://www.example.com/lesson/l1/video.mp4访问视频时,我在浏览器控制台中收到以下错误消息。

{{1}}

请建议一种方法,只能从课程页面访问课程视频。

后端

  • php中的API

  • MySQL db

  • 用于缓存的Redis

1 个答案:

答案 0 :(得分:1)

您可以将includes文件夹移出web-root。如果要阻止直接访问整个包含文件夹,则可以将.htaccess文件放在包含以下内容的文件夹中:

<div id="branddraw">

 <div class="drawings col-md-2">

  <div class="pre-scrollable">



 <div class="thumb">
         <a class="thumbnail" href="#" id="img1">
         <img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img1.png" alt="">
          </a>
 </div>
  <div class="thumb">
       <a class="thumbnail" href="#" id="img2">
       <img class="img-responsive"  src="./assets/colour_imgs/Kcoloring/img2.png" alt="">
       </a>
    </div>
    <div class="thumb">
     <a class="thumbnail" href="#" id="img3">
     <img class="img-responsive"  src="./assets/colour_imgs/Kcoloring/img3.png" alt="">
  </a>
   </div>


 <div class="thumb">
 <a class="thumbnail" href="#" id="img4">
<img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img4.png" alt="">
    </a>
  </div>
  <div class="thumb">
   <a class="thumbnail" href="#" id="img5">
   <img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img5.png" alt="">
   </a>
   </div>
  <div class="thumb">
 <a class="thumbnail" href="#" id="img6">
 <img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img6.png" alt="">
  </a>
  </div>

          </div>

     </div>

 </div>

像这样你无法打开该文件夹中的任何文件,你可以将它们包含在php中而不会出现任何问题。