Bảo vệ Video Html5 khỏi download từ trình duyệt với Defa-Protector

0
988
(Last Updated On: Th10 3, 2018)

Chào các bạn, đối với nhiều website họ chèn video vào trong bài viết hoặc một số trang phim bạn xem trên mạng, bạn sẽ khó lòng tải về. Một phần đó là họ muốn bảo vệ bản quyền, không cho người khác sao chép và đăng lại ở một nơi khác, hoặc đơn giản là chỉ ngăn người dùng tải về, muốn xem phải truy cập trang của họ mới được.

Có một số cách như mã hóa HTML, Javascript hoặc dùng Player để “giấu” đi tập tin thực đằng sau nó. Cũng có thể dùng Secure URL (một dạng mã hóa URL hoặc tạo URL theo một quy tắc nào đó) – hay là Dynamic Link (liên kết động).

Bạn sẽ thấy những trang như YouTube, Facebook, Vimeo hay một số trang Video có đường link (nếu bạn sao chép đường link từ trình duyệt hoặc các chương trình download) trông sẽ như thế này:

https://scontent.xx.fbcdn.net/v/t42.9040-2/10000000_331131857634980_2857002762011410432_n.mp4?_nc_cat=1&efg=eyJybHIiOjE1MDAsInJsYSI6NDA5NiwidmVuY29kZV90YWciOiJzdmVfaGQifQ%3D%3D&rl=1500&vabr=968&oh=f17e421bd5a4f5a9c20f382ecbbb0302&oe=5BB40225




https://r2---sn-8pxuuxa-i5ok.googlevideo.com/videoplayback?ip=116.105.97.229&ipbits=0&sparams=dur,ei,expire,id,ip,ipbits,itag,lmt,mime,mm,mn,ms,mv,pl,ratebypass,requiressl,source&signature=1DF82928A7D78C9C4F9C4FE0AF18EC5EC1157D5C.11D10CC40EE9275AEDE48D3EF60C996A4FEA91E4&ei=vZKzW_7WN5v1qQHwkpLwCg&id=o-ABIbgv71Vi0M5Y3y-3YY8Icx3yybHyprrew2z0D3QFDS&itag=22&fvip=2&lmt=1537418509261229&requiressl=yes&key=cms1&mime=video%2Fmp4&ratebypass=yes&expire=1538516766&dur=332.347&pl=21&c=WEB&source=youtube&redirect_counter=1&cm2rm=sn-8pxuuxa-2m0e76&fexp=23763603&req_id=665a6263f5c9a3ee&cms_redirect=yes&mm=29&mn=sn-8pxuuxa-i5ok&ms=rdu&mt=1538495027&mv=m

Bạn có thể thấy rằng các đường link ở trên được mã hóa, và nó cũng chỉ “sống” trong một thời gian nhất định, cũng tùy theo IP mới có thể truy cập được. Khi bạn truy cập những đường link mà không có nội dung, hoặc bị forbidden thì coi như đó là link “die”. Trong đường link của YouTube như ở trên (đường link dưới cùng trong 3 đường link), bạn có thể thấy có khá nhiều các querystring (ipbits, sparams, expire, id, ip, itag, source&signature) theo sau đó là đoạn ký tự được mã hóa. Chẳng dễ dàng gì để chúng ta có thể “get link”. Mà “Get link” là gì thì các bạn cũng có thể Google tìm hoặc hiểu nôm na rằng đối với các dịch vụ lưu trữ như Google Picasa (trước đây), Google Drive mục đích là phục vụ cho nhu cầu lưu trữ cá nhân và chia sẻ với bạn bè. Vì thế mà rất nhiều cao thủ đã lợi dụng để làm nơi chứa phim, làm các trang phim online, ca nhạc,… Nhưng đó chỉ là một khía cạnh nhỏ mà chúng ta không cần phải đi sâu vào làm gì.

Một đường link ví dụ trông như thế này:

http://vngeek.net/videos/vid?url=060AD0DD95C59C942A90CBCBEA257CFC.mp4

Cái Subfolder /videos đôi khi cũng chỉ là tượng trưng vì là thành quả của việc viết lại URL của Webserver (chẳng hạn như mod_rewrite trên Apache hay Rewrite Rules trên Nginx), còn đằng sau cái query vid?url là 060AD0DD95C59C942A90CBCBEA257CFC.mp4, là kết quả của một hàm băm MD5 và phần mở rộng là file video .mp4. Tức là có thể có một từ bí mật nào đó cho trước (secret word) được cấu hình trong webserver và việc còn lại đó là mã nguồn web (source code) cũng hoạt động theo cách thức như vậy, kiểu như là 2 người cùng chung một ngôn ngữ thì mới có thể giao tiếp được với nhau.

Không như như đường link tĩnh dưới đây:

https://vngeek.com/wp-content/uploads/2016/03/Gwiyomi.mp4?id=0

Bạn có thể chép vào trình duyệt và xem ngay, tải về nếu muốn. Khi nào trang VnGeek còn hoạt động và online không có sự cố gì thì bạn vẫn có thể xem và tải về bình thường.

Nhưng đối với việc bảo vệ bằng nhiều cách như mình có đề cập ở trên, ngoài ra còn có sử dụng Streaming Server như Wowza Streaming Engineer, mã hóa HLS Stream, Hotlinking Protection,… nhưng đó dành cho các tổ chức lớn và yêu cầu thiết lập không hề đơn giản với những người mới bắt đầu.

Đi vào chủ đề bài viết, mình xin giới thiệu các bạn một script có thể hỗ trợ các bạn bảo vệ các Video từ chính trang web của các bạn một cách đơn giản hơn nhiều đó chính là Defa-Protector-Protect-HTML5 và bạn có thể tải về trên GitHub.

Trong bài viết hôm nay, mình sử dụng WordPress và 
Defa-Protector-Protect-HTML5 cũng có một Plugin cho WordPress, bạn chỉ việc tải về và cài đặt, ngoài ra hầu như không cần phải làm gì khác (bạn có thể tùy biến thêm sau này).

Bạn có thể tải về Plugin tại địa chỉ này: Defa-Protector-Protect-HTML5-Video-From-Download for WordPress.

Cài đặt như bao Plugin thông thường khác thôi.

Cài xong chúng ta đã có Plugin Defa Protector Feather.

Sau đó mình tạo một bài viết mới và thử tải lên Video (Outro của VnGeek):

Bây giờ mình tắt Plugin Defa-Protector-Protect-HTML5 tạm thời để ra xem video:

Mình vẫn có thể download bằng Internet Download Manager bình thường.

Sau đó mình bật Plugin Defa-Protector-Protect-HTML5 lên lại:

IMD vẫn bắt được link, nhưng đó không phải là link “sống”. Chỉ là một file defavid.php.
Và dĩ nhiên chẳng thể download được.

Mình thử sao chép địa chỉ Video:

Mình thử sao chép địa chỉ của video.
Và nó cũng chỉ là một liên kết tượng trưng dẫn đến file defavid.php.

Như vậy phần nào cũng đã ngăn cản việc người dùng Download được video mà mình đã tải lên.

Mình thử view-source xem có lấy được chút thông tin gì không:

Như vậy thử tìm đường dẫn đến file .mp4 mà mình tải lên không có trong Source. Do đó không thể lấy được video qua Source code.

Tới đây các bạn cũng có thể thấy Plugin đã hạn chế được việc tải về cũng như không lấy được bất kỳ đường link nào. Phần nào đã giúp các bạn bảo vệ được tập tin video của mình. Tác giả của Defa-Protector có khá nhiều các phần mềm thú vị khác các bạn có thể tham khảo tại trang  Ampare Engine.

Đối với những bạn không sử dụng WordPress, có thể sử dụng Defa-Protector AllCms, download tại đây. Hoặc tải về từ server VnGeek tại đây.

Tải về, giải nén ra các bạn có những file như hình dưới đây:

Có 2 file quan trọng mà bạn cần chú ý đó chính là defavid.phpincludetop.php

Bây giờ bạn tải file defavid.php vào thư mục root của Website, kiểu như:

http://vngeek.com/defavid.php

Tương tự như vậy đối với file includetop.php

Bây giờ thêm vào Header hoặc tập tin PHP đằng sau 
<?php:

<?php
include('includetop.php');
class ampareenginecms{
public funciton somecmsfunctionwhatever(){
return "Hello World!";
}
}

Bây giờ cứ Embed file .mp4 và hưởng thụ thành quả thôi.

Bình luận