baik, Anda tidak bisa melindunginya 100% tetapi Anda bisa membuatnya lebih sulit. metode ini yang saya jelaskan, saya hadapi mereka selama mempelajari metode perlindungan di PluralSight dan BestDotNetTraining . Meskipun demikian, tidak satu pun dari metode ini yang menghentikan saya untuk mengunduh apa yang saya inginkan, tetapi saya mengalami kesulitan untuk mengkurasi pengunduh untuk melewati perlindungan mereka.
Selain metode lain yang disebutkan untuk menonaktifkan menu konteks. pengguna masih dapat menggunakan alat pihak ketiga seperti InternetDownload manager atau perangkat lunak serupa lainnya untuk mengunduh video. metode perlindungan yang saya jelaskan di sini adalah untuk mengurangi perangkat lunak pihak ke-3 itu.
persyaratan dari semua metode ini adalah untuk memblokir pengguna ketika Anda mengidentifikasi seseorang sedang mengunduh video Anda. dengan cara ini mereka hanya dapat mengunduh satu atau dua video saja sebelum Anda melarang mereka mengakses situs web Anda.
penolakan
Saya tidak akan menerima tanggung jawab apa pun jika seseorang menyalahgunakan metode ini atau menggunakannya untuk membahayakan orang lain atau situs web yang saya sebutkan sebagai contoh. itu hanya untuk berbagi pengetahuan untuk membantu Anda melindungi produk intelektual Anda.
menghasilkan tautan dengan kedaluwarsa
persyaratan untuk ini adalah membuat tautan unduhan per pengguna. yang satu dapat dengan mudah ditangani oleh penyimpanan gumpalan biru atau amazon s3. Anda dapat membuat tautan unduhan dengan cap waktu kedaluwarsa panjang video yang dua kali lipat. maka Anda perlu menangkap tautan video itu dan waktu yang diminta. ini diperlukan untuk metode selanjutnya. tangkapan untuk metode ini adalah Anda menghasilkan tautan unduhan ketika pengguna mengklik tombol putar.
pada acara tombol putar Anda akan mengirim permintaan ke server dan mendapatkan tautan serta memperbarui sumbernya.
tetapkan laju permintaan video
lalu Anda memantau seberapa cepat permintaan pengguna untuk video kedua. jika pengguna meminta tautan unduhan terlalu cepat, maka Anda segera memblokirnya. Anda tidak dapat menempatkan ambang ini terlalu besar karena Anda dapat secara keliru memblokir pengguna yang hanya menjelajah atau membaca sekilas video.
Aktifkan Rentang HTTP
menggunakan beberapa perpustakaan js seperti videojs untuk memutar video Anda, juga Anda perlu mengembalikan AcceptRange di header. Penyimpanan gumpalan Azure mendukung ini di luar kotak. dengan cara ini browser mulai mengunduh potongan video dengan potongan. biasanya, 32byte demi 32byte. maka Anda perlu mendengarkan videojstimeupdate
perubahan dan memperbarui server Anda tentang persentase video yang ditonton. persentase bahwa video ditonton tidak boleh lebih dari persentase bahwa video dikirimkan. dan jika Anda mengirimkan konten video tanpa menerima perubahan persentase, maka Anda dapat memblokir pengguna. karena pasti mereka sedang mengunduh.
menerapkan ini rumit karena pengguna dapat melewati video ke depan atau ke belakang jadi sadarilah ini ketika Anda menerapkan ini.
ini adalah cara BestDotnetTraining menangani timeupdate
myPlayer.ready(function () {
//var player = this;
this.src({
type: "video/mp4",
src: videoURL
});
if (videoId) {
myPlayer.play();
this.on('timeupdate', function () {
var currentPercent = parseInt(100 * myPlayer.currentTime() / myPlayer.duration());//calcualte as percentage
if (currentPercent % 5 == 0) {
//send percentage to server
SaveVideoDurationWatched(currentPercent, videoId);
}
});
}
});
bagaimanapun, pengguna dapat mengatasi ini dengan menggunakan beberapa metode unduhan yang mengunduh file melalui streaming. hampir c # melakukannya di luar kotak dan untuk nodejs, Anda dapat menggunakan request
modul. maka Anda perlu memulai stopWatch, mendengarkan paket yang diterima dan membandingkan total byte yang diterima dibandingkan dengan ukuran total. dengan cara ini Anda dapat menghitung persentase dan waktu yang dihabiskan untuk mendapatkan jumlah persentase itu. lalu gunakanThread.Sleep()
atau sesuatu seperti itu untuk menunda utas jumlah yang harus Anda tunggu jika Anda menonton video secara normal. juga sebelum tidur pengguna dapat menghubungi server dan memperbarui persentase yang diterima. jadi server berpikir bahwa pengguna sebenarnya menonton video.
perhitungannya akan seperti ini, misalnya, jika Anda menghitung bahwa Anda menerima 1 persen sejauh ini, maka Anda dapat menghitung jumlah yang harus Anda tunggu untuk tidur di utas unduhan. dengan cara ini Anda tidak dapat mengunduh video lebih cepat dari panjang sebenarnya. jika video 24 menit. akan dibutuhkan 24 menit untuk mengunduhnya. (ditambah ambang yang kita masukkan dalam metode pertama)
original video length 24 minute
24 min *60000 = 1,440,000 miliseconds
1,440,000 % 100 = 14,400 milisecond is needed to download one percent
periksa agen peramban
ketika Anda melayani halaman web dan melayani tautan video atau menerima permintaan pembaruan kemajuan Anda dapat melihat agen peramban. jika berbeda maka larangan pengguna.
Perlu diketahui bahwa beberapa browser lama tidak meneruskan informasi ini. jadi Anda harus mengabaikan ini ketika tidak ada agen peramban dalam permintaan video dan permintaan halaman web. tetapi jika satu permintaan memilikinya dan yang lainnya tidak, maka Anda harus mencekal pengguna tersebut.
untuk mengatasi ini, pengguna dapat mengatur header agen browser secara manual sama dengan browser tanpa kepala yang mereka gunakan untuk menangkap tautan unduhan.
periksa tajuk pengarah
ketika referer adalah sesuatu selain URL host Anda atau URL halaman yang Anda tayangkan video, Anda dapat mencekal pengguna, karena mereka meletakkan tautan unduhan di tab lain atau aplikasi lain. bahkan Anda dapat melakukannya untuk permintaan pembaruan kemajuan.
persyaratan untuk ini adalah memiliki pemetaan video dan halaman yang menunjukkan video itu. Anda dapat membuat beberapa konvensi atau pola untuk memahami apa URL seharusnya, terserah desain Anda.
untuk mengatasinya pengguna dapat mengatur header pengarah secara manual sama dengan URL halaman unduhan saat mengunduh video.
Hitung waktu antara permintaan
jika Anda menerima begitu banyak permintaan sehingga waktu di antara keduanya sama, maka Anda harus memblokir pengguna. Anda harus meletakkan ini untuk menangkap berapa waktu antara permintaan pembuatan tautan video. jika mereka sama (plus / minus beberapa ambang) dan itu terjadi lebih dari beberapa kali, maka Anda dapat mencekal pengguna. karena jika ada bot yang akan merayapi situs web atau video Anda, maka biasanya mereka memiliki waktu tidur yang sama di antara permintaan mereka. jadi jika Anda menerima setiap permintaan, misalnya, setiap 1,3 (plus / menit penyimpangan) menit. maka Anda menaikkan alarm. untuk ini, Anda dapat menggunakan beberapa perhitungan statistik untuk mengetahui penyimpangan antara permintaan.
untuk mengatasinya, pengguna dapat menempatkan waktu tidur acak di antara permintaan.
Kode sampel
Saya punya repo PluralSight-Downloader yang melakukannya setengah jalan. Saya membuat repo ini hampir 5 tahun yang lalu. karena saya menulisnya untuk tujuan belajar dan penggunaan pribadi saja, repo tidak menerima pembaruan sejauh ini dan saya tidak akan memperbarui atau membuatnya mudah untuk dikerjakan. itu hanya contoh bagaimana hal itu dapat dilakukan.