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.
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:
Sau đó mình bật Plugin Defa-Protector-Protect-HTML5 lên lại:
Mình thử sao chép địa chỉ Video:
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:
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:
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.