direkt link korumaları artık botlardan kurtulmaya yetmiyor. headera referer gömüp gönderebilmek zor olmadığı için hotlink korulamarı hiç birşeye yaramaz oldu. linklerimizi şifreleyelim her gun değişen urlmiz olsun htacces ile .
ilk once şifrelemek istediğimiz dosya türü belli olsun ya da olmasa bile farketmez de ben mp3 uzantıları dinamik yapmak istiyorum mesela.
dinamik algoritmamız aşağıdaki gibi olsun
0 1 | /md5(date('dmY').'şifremiz')/dosya_adi.mp3 |
o günün tarihi dmY formatında ve yanında da belirlediğimiz bir şifremizle birleştirerek md5 i alınmış şekilde olsun
yani bugünün tarihi için gizli_klasor/sagopa_kajmer.mp3 dosyasını çağırabilmek için url miz aşağıdaki gibi olacak
0 | href="05da04fb04c034b30e4c03601/sagopa_kajmer.mp3" |
bunun için bize htaccess lazım ufacık
direklink ya da botlara karşı birşeyler yapmak istiyorsunuz sanırım ama bunu hergün klasor ismi değiştirip veritabanından da değiştirmek yerine htaccess kullanabilirsiniz.
0 1 2 3 4 5 | Options +FollowSymLinks IndexIgnore / RewriteEngine on # Yazdıkları Adreste Bir Dosya Varsa açsın RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Eğer Yoksa gizli_dosya.php ye gitsin RewriteRule ^.*$ /gizli_dosya.php [L] |
girilen adreste bir dosya varsa açsın bunu da engelleyebiliriz eğer htaccess dosyasının olduğu yerde diğer kullandığımız dosyalar yoksa buna da gerek yoktu..
şimdi bunu engeledik ve her istek gizli_dosya.php dosyamıza geliyor. şimdi bu dosyamızı kodlayalım.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php //Şifreli adresimizi karşılicak adresin görüntüsü /32karatermd5/dosyaadi.mp3 bunu regexp ile yazalım $pattern='/(?<md5>[A-Fa-f0-9]{32})(\/)(?<dosya_adi>[a-zA-Z0-9_-\.]+)(\.)(?<uzanti>mp3)/i'; //eğer uzantıları arttırmak istersek (?<uzanti>mp3|rar|mpg|jpg) gibi arttırabilirz // Adresimiz bu görüntüye uyuyormu onu kontrol edelim uymuyorsa 404 hatası verdirelim. if (preg_match($pattern, $_SERVER['REQUEST_URI'], $Parcaciklar)) { $dosyamiz='gizli_klasor/' . $Parcaciklar['dosya_adi'] . '.' . $Parcaciklar['uzanti']; // eşleşenler bize $Parcaciklar dizisi olarak dönecek dosyamız varsa ve md5 algoritmamıza uyuyorsa dosyayı cıktı olara verioruz if (is_file($dosyamiz) AND $Parcaciklar['md5']==md5(date('dmY').'şifremiz')) { // uzantilari kontrol edip header atarsak her tarayıcı için uyumlu hale gelir mp3 için yazalım header("Content-Type: audio/x-mp3"); header('Content-length: ' . filesize($dosyamiz)); header('Content-Disposition: filename="' .$Parcaciklar['dosya_adi'].'.'.$Parcaciklar['uzanti'].''); echo file_get_contents($dosyamiz); die(); // çıktıyı verdikten sonra öldürmeliyiz yoksa aşağıdaki not found bloğuna düşer ve hata alırız. } } header("Status: 404 Not Found"); ?> |
aartık dosyalarımız dmY formatlı tarihin yanına şifremiz sıkıştırılarak yazılmış bir klasorun içinde gizli gibi ..








Güzel bir döküman ve baya yararlı
Slm, Bu kodu htlm sitedede kullanbilirmiyiz acaba ?
Teşekkürler…