Bảo vệ link nhạc kểu coolrip.com
Nguồn bài viết: http://sinhvienit.net/@forum/showthread.php?t=2926
Như chúng ta đã biết để làm một site nhạc bạn cần có host có dung lượng và băng thông đủ lớn để chứa những bài hát. Nhưng dù đã đủ hai diều kiện trên bạn cũng không thể tránh khỏi lo ngại bị người khác lấy link nhạc của mình, một người thì có lẽ không đáng ngại lắm nhưng nhiều người thì có lẽ chúng ta nên xem qua bài viết này :
Với việc sử dụng hàm readfile (); trong PHP mình hi vọng sẽ hạn chế được phần nào vấn đề đó. Yêu cầu đầu tiên là host bạn chứa nhạc phải hổ trợ PHP và các bài hát của bạn nắm trên 1 host duy nhất (Tất nhiên có thể nằm trên nhiều host khác nhau.). Cách thức tiến hành như sau :
Giả sử bạn đã có 1 site nhạc của mình, link nhạc để chạy của bạn có giá trị $linkplay = "http://domainyou.com/thư mục chứa nhạc/bài hát.wma";
Lúc này ta sử dụng cách thức sau để thay đổi link nhạc thật của bạn chút ít :
QUOTE
$linkplay=str_replace("http://domainyou.com/","http://domainyou.com/hidelink.php?link=",$linkplay);
Lúc này $linkplay = "http://domainyou.com/hidelink.php?link=thư mục chứa nhạc/bài hát.wma"; , ta tiến hành thêm một thủ thuật nữa ở file lấy link từ data ra như sau :
CODE
<?
$linkplay = "http://domainyou.com/hidelink.php?link=thư mục chứa nhạc/bài hát.wma";
$thoigian = date(dmy);//Chúng ta chỉ lấy ngày, tháng, năm - link nhạc sẽ thay đổi theo ngày
$s=md5(md5($thoigian));
$linkplay = "".$linkplay."&s=".$s."";//Giá tri $s sẽ thay đổi theo ngày
?>
Vậy lúc này $linkplay đã thay đổi và có thêm biến $s luôn được tự động thay đổi theo ngày.
Bây giờ chúng ta quan tâm đến file hidelink.php, file này có nội dung như sau và được đặt ở thư mục chính :
CODE
<?php
@header('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
@header('Pragma: no-cache'); // HTTP/1.0
/************************************************** **
H_manh2612 Design and Code
************************************************** **/
$link=$_REQUEST['link'];
$s=$_REQUEST['s'];
$thoigian = date(dmyh);
$sessionOK=md5(md5($thoigian));
if ($sessionOK!=$session)
{
header('WWW-Authenticate: Basic realm="Lay link nhac lam ri"');
header('HTTP/1.0 401 Unauthorized');
exit("<title>www.hongmanh.uk.to</title><center><h3>H_Manh2612 Design and Code</center>");
}
//$link sẽ có giá trị là $link=thư mục chứa nhạc/bài hát.wma;,
$linkplay = $link;
$linkplay=str_replace(" ","%20",$linkplay);
$linkplay=str_replace(" ","%20",$linkplay);
$lastdot = strrpos($linkplay,".");
$lastx = strrpos($linkplay,"/");
$file_name = strtolower(substr($linkplay,$lastx+1));
@header('Content-type: application/octetstream');
@header("Pragma: public");
@header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
@header('Content-Disposition: inline; filename="' . $file_name . '"');
ob_end_clean ();
ob_start();
Code:
readfile ($linkplay); //việc readfile hai file trên 1 host thì khỏi nói phải không nào
$size=ob_get_length();
header("Content-Length: $size");
ob_end_flush();
exit();
?>
Đến đây rồi thì các bạn có thể tạm thời yên tâm là link nhạc của mình sẽ được bảo đảm thay dổi theo ngày nên có lẽ 1 ai đó không có thời gian mà ngày nào cũng lên để thay đổi link phải không nào. Ngoài cách thứ thay đổi theo ngày bạn có thể dùng 1 vài cách khác ....
Nhưng đến đây nếu bạn đã yên tâm thì khoan đã, vì nếu dùng phần mền thì vẫn có thể lấy được link thật của bạn (Cũng không rõ lắm

), để an toàn hơn nữa bạn tạo file .htaccess có nội dung sau :
CODE
Require user
www.hangxom.net
AuthType Basic
AuthName "www.hangxom.net"
authtype basic
require valid-user
Rồi đặt nó ở thư mục gốc của thư mục chứa nhạc .
Xong rồi đó, các bạn thử xem sao.
Bài viết đã được chỉnh sửa bởi
h_manh2612: Oct 10 2006, 11:06 AM
--------------------
Code
Microsoft JET Database Engine error '80040e14'
Syntax error in string in query expression 'Portfolios_ID=4''.
/Portfolios1.asp, line 8