Как заставить WISA действовать как LAMP (защита .mp3-файлов в IIS)

StackOverflow https://stackoverflow.com/questions/106871

Вопрос

Я создал несколько небольших флеш-виджетов, которые передают аудио в формате .mp3 с хоста Apache/php.К mp3-файлу нельзя получить прямой доступ, и он не сохраняется в кеше браузера.

Для этого я установил разрешение файла mp3 на хосте на «владелец:чтение/запись» (числовое значение 600).Благодаря этому только мой файл .php может читать файлы .mp3.

Затем я делаю запрос к своему php-файлу из моего ActionScript, и он передает mp3 в мой виджет.(Если клиент/пользователь просматривает кеш браузера, файл mp3 не найден должным образом)

Это php-код, который передает файл:

<?php 
ob_start();
header("Expires: Mon, 20 Dec 1977 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type: audio/mpeg");
@readfile($_GET["file"]);
ob_end_flush();
?> 

Кто-нибудь знает, как воспроизвести это поведение с помощью IIS/ASP.Net?

 1.) Make it so a file is only accessible to a file on the server.
 2.) Stream that file using an .ASPX or .ASHX?
Это было полезно?

Решение

На самом деле вы не защищаете MP3, а просто запутываете их.Любой желающий по-прежнему может их сохранить, особенно если он просто запустит HTTP-отладчик, такой как Fiddler, чтобы выяснить, какие HTTP-вызовы выполняются.Тот факт, что вы установили для них режим некэширования и использования PHP-скрипта, не сильно помогает.

Чтобы получить тот же эффект с помощью ASP.NET, вы должны написать HTTPHandler (вероятно, недалеко от .ashx), настройте все заголовки одинаково, используя context.Response.Headers, затем загрузите .mp3 файл с использованием System.IO.FileStream и отправьте это context.Response.OutputStream.Искать System.Web.HTTPHandler, System.IO.FileStream, и System.Web.HTTPResponse на MSDN для получения дополнительной информации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top