首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使WISA像LAMP一样(在IIS上保护.mp3s)

如何使WISA像LAMP一样(在IIS上保护.mp3s)
EN

Stack Overflow用户
提问于 2019-03-25 00:57:20
回答 1查看 0关注 0票数 0

我创建了一些小的Flash小部件,它们从Apache / php主机传输.mp3音频。无法直接访问mp3文件,也无法将其自行保存到浏览器缓存中。

为此,我将主机上的mp3文件权限设置为“owner:read / write”(数值600)。这使得只有我的.php文件才能读取.mp3。

然后我从我的ActionScript向我的php文件发出请求,它将mp3流式传输到我的小部件。(如果客户端/用户在浏览器缓存中查找,则找不到所需的mp3文件)

这是流式传输文件的php代码:

代码语言:javascript
复制
<?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重现此行为

代码语言:javascript
复制
 1.) Make it so a file is only accessible to a file on the server.
 2.) Stream that file using an .ASPX or .ASHX?
EN

回答 1

Stack Overflow用户

发布于 2019-03-25 10:45:38

你并没有真正保护MP3,只是混淆了它们。任何人都可以保存它们,特别是如果它们只是启动像Fiddler这样的HTTP调试器来找出正在进行的HTTP调用。您将它们设置为不缓存并通过PHP脚本这一事实并没有多大帮助。

要使用ASP.NET获得相同的效果,您可以编写一个HTTPHandler(可能只是关闭.ashx),以相同的方式设置所有标头context.Response.Headers,然后使用加载.mp3文件System.IO.FileStream并将其发送到context.Response.OutputStream。查一查System.Web.HTTPHandlerSystem.IO.FileStreamSystem.Web.HTTPResponseMSDN上获取更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档