2016-06-24 28 views
1

电子学习平台:课程的讲师将在为课程创建课程的同时上传视频。防止直接访问课程视频|电子学习

   create   has   consists of 
instructor ---------> course ------> lesson --------------> video 

当GET请求的教训做出的过程C1由学生L1,服务器将进行回应以下JSON响应(如果学生已登录并签署开的过程中)

{ 
    "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" 
     } 
    ] 
} 

要求

使课程视频只能从 http://www.example.com/course?courseid=c1&lessonid=l1 当学生登录并注册课程时的页面。

我做了什么

我已经写了下面的行的.htaccess文件我已经放在教训文件夹内防止课视频的直接访问。

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

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

我甚至试过如下:

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

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

Forbidden 

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

所以,它成功地阻止视频的直接访问时,我复制粘贴到浏览器中的视频链接http://www.example.com/lesson/l1/video.mp4

问题

但是,当我尝试访问从视频课程页面http://www.example.com/course?courseid=c1&lessonid=l1我在浏览器控制台中收到以下错误消息。

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

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

后端PHP中

  • API

  • MySQL数据库

  • Redis的缓存

+0

当客户端打开你的页面时,他的PC IP将不会与服务器IP相同,所以他肯定无法看到它。 –

+0

@AmitRay我甚至尝试拒绝所有和删除服务器的IP部分,仍然无法正常工作 – yusufshakeel

+0

请看Nikhil Pradeep的答案。它可能会帮助你。另请注意,如果允许某人查看视频,则停止下载视频非常困难。 –

回答

1

你可以只移动包括文件夹出网络的根。如果你想阻止整个直接访问包括文件夹,然后你就可以把一个.htaccess文件仅包含该文件夹中:

deny from all 

这样你就无法从文件夹中打开的任何文件,你可以将它们包括在PHP没有任何问题。