Php ve nginx ile ayarı
PHP Kodları
function tokens(){
$secret = 'sifreniz';
$expire = time() + 3600;
$md5 = base64_encode(md5($secret . $expire, true));
$md5 = strtr($md5, '+/', '-_');
$md5 = str_replace('=', '', $md5);
return 'tkn='.$md5.'&tms='.$expire;
}
//token üretir sifreniz yazan yere istediğiniz bir şifreyi verebilirsiniz.<?echo "http://ipadresi/live/streamadi.m3u8?".tokens(); ?>
// yayın adresini yazdırır
Nginx.conf kodları
location ~ \.(ts|m3u8)$ {
sub_filter .ts .ts$is_args$args;
sub_filter_once off;
sub_filter_types application/vnd.apple.mpegurl;
secure_link $arg_tkn,$arg_tms;
secure_link_md5 sifreniz$arg_tms;
if ($secure_link = "") {
return 404;
}
if ($secure_link = "0") {
return 404;
}
}nginx.conf ayarlarında da
sifreniz yazan yer aynı olmalı.
Web üzerinde kullanacaksanız Cloudflare altında yayın verdiğiniz sayfayı bypass yapmanız gerekir, aksi halde cache aldığından dolayı düzgün çalışmaz.
Ek olarak; bu güvenlik önlemini herkes basit şekilde aşıyor. Kısacası zorlamanıza gerek yok o kadar. Web üzerinde yapacaksanız tek geçilemeyecek sistem Google Captcha arkasına almak. Onda da ziyaretçi kaybedersiniz. Ya da incapsula kullanabilirsiniz, CURL vs engelliyor.