2012-01-16 35 views
11

Đây là kịch bản của tôi: Tôi đang xây dựng một trang web cho ban nhạc của một người bạn. Họ muốn phát trực tuyến phiên bản đầy đủ các bài hát của họ trên trang web nhưng không cho phép người dùng tải xuống các tệp. Có các liên kết để mua nhạc trên iTunes và Amazon. Giải pháp lý tưởng của tôi là sử dụng thẻ âm thanh html5.Cách bảo vệ nhạc khi phát qua thẻ âm thanh HTML5

Vấn đề của tôi: Phát nhạc trực tuyến qua thẻ âm thanh không an toàn và rất dễ nắm bắt URL trong nguồn của trang và sau đó chỉ cần tải xuống từ trình duyệt web của họ.

Tôi đã thực hiện một số nghiên cứu trực tuyến và đọc một số cuộc thảo luận. Vâng, tôi biết rằng không có cách nào để đảm bảo an toàn 100%. Nhưng, tôi muốn thử thực hiện một số biện pháp an ninh để ngăn chặn hầu hết mọi người ăn cắp âm nhạc.

Vì vậy, câu hỏi của tôi là, tôi có thể thực hiện các biện pháp nào để thử và đảm bảo âm thanh? Có cách nào để chỉ cho phép trang truy cập nhạc vào nó không? Vì vậy, theo cách này, người dùng không thể điều hướng đến URL của tệp nhạc và tải xuống? Hoặc là có một cách để có được nó từ một webservice?

Bất kỳ trợ giúp nào được đánh giá cao. Cảm ơn!

Trả lời

8

Có một mẹo nhỏ tôi nghĩ về: cho phép truy cập vào âm nhạc thông qua một lần url độc đáo:

// Page generation 
// Generate unique token and put it into database 
<audio controls="controls"> 
    <source src="song.ogg?token=UNIQUETOKEN" type="audio/ogg" /> 
</audio> 

// On access 
- Check for corresponding UNIQUETOKEN in database 
- Remove token from database 
- Send audio data 

Nó sẽ không ngăn chặn người dùng tải bài hát của bạn thông qua CURL (ví dụ), nhưng họ sẽ không thể xem trang VÀ điều hướng nguồn để tải xuống lại bài hát.

Ngoài ra, bạn cũng có thể tải xuống các mẫu riêng biệt của bản nhạc và phát chúng liên tục bằng trình phát tùy chỉnh. Đây chỉ là những ý tưởng, tôi không chắc họ sẽ đủ hiệu quả cho những gì bạn yêu cầu.

+0

Ý tưởng này là một lý thuyết tốt, nhưng tôi không hoàn toàn chắc chắn làm thế nào điều này sẽ được thực hiện trong thực tế? Có, tôi có thể thiết lập cơ sở dữ liệu và nhận/đặt mã thông báo, nhưng tôi không hiểu cách lấy bài hát bằng url này bằng mã thông báo dưới dạng chuỗi truy vấn bằng HTML. – JRusty15

+0

Trong cơ sở dữ liệu, bạn sẽ có một bảng "thẻ" với một 'id' và một' tên tệp 'tương ứng. Bạn có thể có một vài 'ids' cho một' tên tệp' duy nhất. Về phía máy chủ, kịch bản của bạn sẽ tìm thấy UNIQUETOKEN, lấy tên tệp tương ứng, xóa dòng trong cơ sở dữ liệu và xuất dữ liệu bài hát. Cách đọc và xuất nội dung tệp phụ thuộc vào ngôn ngữ phía máy chủ của bạn. Trong PHP, nó sẽ là: 'echo file_get_contents ($ filename)'. –

+0

Vâng, trang web sẽ được tổ chức bởi bên thứ 3 và tôi không có khả năng đặt bất kỳ loại quyền nào đối với tệp. Vậy điều gì sẽ ngăn người dùng điều hướng đến URL (không có mã thông báo) và vẫn truy cập vào tệp? – JRusty15

0

Tôi đã làm điều này với hai tệp .php:

Đầu tiên là 'trình phát'. Khi nó tải nó tạo ra một var phiên mà thứ hai chọn lên - hoặc không.

Thứ hai là 'streamer'. Nếu nó tìm thấy phiên var nó sử dụng 'một phần nội dung' tin nhắn để dòng bài hát cho người chơi. Nếu phiên var bị thiếu thì nó sẽ không làm gì cả.

Không được có bất kỳ cách nào để liên kết trực tiếp với nó mà không cần truy cập vào hệ thống tệp.

Các vấn đề liên quan