09/10/2018, 23:15

Bảo vệ file trên website

Trên site mình có hàng loạt file .rar, .zip, .mp3,.wmv. Hiện tại mình có để link trực tiếp lên diễn đàn cho member download. Như gần đây có một số cá nhân sử dụng link mình vô tội vạ post tứ tung các diễn đàn khác--> site mình chạy chậm. Nay nhờ các huynh chỉ giúp các nào quản lí các file này chỉ cho down các file này khi và chỉ khi nào click vào link gắn từ site mình (giống như HTTP_REFERER). Site load chậm kinh khủng nhờ các huynh giúp.
viết 01:30 ngày 10/10/2018
chia buồn với bạn là mp3 và wmv không bảo vệ được theo htaccess, mình cũng đang cần bảo vệ nè mà tìm hoài chưa được cách nào tốt
thq viết 01:17 ngày 10/10/2018
bảo vệ thì có: viết htaccess , nhưng cách đó khổ sở!
Có cách khác dễ dàng hơn, dùng PHP: tạo 1 link dạng file.php?name=1.wma, bạn có thể dùng 1 trong 2 cách sau
1/Dùng php readfile(); Xử lý 1 chút với header, rồi đọc file, như vậy thì URL của file không lọt ra ngoài.Cách này chỉ dùng với file dung lượng nhỏ, những file lớn server thường cắt nửa chừng, không theo đến hết file.
2/Liên tục đổi tên thư mục chứa tất cả các file:
Bạn lưu các file vào thư mục vd:upload.Trong file.php chỉ cần dùng lệnh dạng

$folder="upload";
header("location: $folder/$name");

KHi bạn tiến hành đổi tên thư mục thì vào sửa lại nội dung của biến $folder.Như vậy web của bạn luôn chạy đúng, còn ai chơi hotlink thì chỉ xài được đến lần đổi tên tiếp theo của bạn thôi.
Kiểm tra thêm REFERER thì chống được người dùng xài trực tiếp file.php?name=1.wma cuả bạn.
Có gì trao đổi thêm thanhquang20012002 YIM
viết 01:20 ngày 10/10/2018
làm như cách của bạn cũng chưa đảm bảo, vì cúng 1 thời điểm có nhiều người down bằng IDM mà down cỡ 100 bài nhạc là web sụp liền
onhamotminh viết 01:21 ngày 10/10/2018
Cảm ơn các bạn đã trả lời. Như hiện tại mình đang xài asp/asp.net, có cách nào làm trên IIS không?? Còn theo như bạn 1adult cũng có thể quản lí bằng firewall giới hạn connection
trantrongman viết 01:24 ngày 10/10/2018
có một cách rất đơn giản là kiếm free host unlimit banwidth dùng để upload file thôi,cài forum trên host khác.mình nghĩ cách này là đơn giản nhất .
NDThuan viết 01:29 ngày 10/10/2018
Quote Được gửi bởi lkn View Post
Khà khà, code như vậy bị lỗi remote file, có thể bị cái shell -> bị hack.
Là sao xin chỉ giáo thêm
Mitxixipi viết 01:23 ngày 10/10/2018
Quote Được gửi bởi trantrongman View Post
có một cách rất đơn giản là kiếm free host unlimit banwidth dùng để upload file thôi,cài forum trên host khác.mình nghĩ cách này là đơn giản nhất .
oạch
Nói như bạn thì nói làm gì ??
thq viết 01:30 ngày 10/10/2018
Quote Được gửi bởi lkn View Post
Khà khà, code như vậy bị lỗi remote file, có thể bị cái shell -> bị hack.

Nên thêm cái check file, hoặc thay cái $folder thành hằng FOLDER thì ok hơn
Thanks pác nhắc nhở
thq viết đại mấy dòng code minh họa thôi
Còn ở web của mình thì thq dùng file.php?id=1000 , sau đó chạy vào MYSQL lấy link của mình ra rồi mới cho down.
Đại ca chỉ giáo thêm về cái vụ SHELL
Chuyện "có nhiều người down bằng IDM mà down cỡ 100 bài nhạc là web sụp liền" lại là chuyện khác, đâu phải chuyện hot link.
mykenty viết 01:17 ngày 10/10/2018
Nếu dùng ASP.NET thì trong trang bạn viết vd download.aspx, bạn dùng Request.UrlReferrer để xem trang trước đó link qua là trang gì nếu trang nhà thì ok.

Ngoài ra, làm trang download nếu host chung source và file thì nên làm load file rồi write output ra màn hình, lúc đó bạn có thể kiểm soát được bao nhiêu ng` down và giới hạn tùy bạn, còn redirect thẳng tới file thì vô tư dễ sụp lắm
Bài liên quan
0