首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中保护ASX文件

在PHP中保护ASX文件
EN

Stack Overflow用户
提问于 2009-07-24 05:55:28
回答 2查看 773关注 0票数 1

我在我的网站上有一个仅限会员的区域,用户可以在那里登录并查看Windows Media流内容。

我已经创建了一个PHP脚本来服务于ASX文件,但是我不能用会话信息来验证它。我认为这是因为WMP发出了请求,而不是php页面。

有没有人能推荐一种优雅的方法来保护ASX文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-24 06:27:18

我要做的是将PHP会话ID合并到.asx请求中。通常,此标识符存储在cookie中,并在每个页面请求时传递给PHP。在这种情况下,WMP不会发送cookie,因此您无法知道请求是否经过身份验证。

当您输出ASX文件的下载链接时,将会话标识符添加为GET变量:

代码语言:javascript
复制
$download_link = "http://myserver.com/download_asx_file.php?"
$download_link .= "f=$file_id&";
$download_link .= htmlspecialchars(SID);

现在,当您在download_asx_file.php顶部调用session_start()时,它应该会正确地找到并加载您的会话,并允许您正常进行身份验证。

注释:SID常量的计算结果为PHPSESSID=12345678 (或者用户的会话恰好是什么)

票数 0
EN

Stack Overflow用户

发布于 2009-07-24 06:21:13

您可以尝试这样做:

代码语言:javascript
复制
//$user->isAuthenticated is only for ilustration, use whatever method you
//use to check if the user is authenticated
if($user->isAuthenticated()) {
      $asx = file_get_contents("/path/to/my/file.asx");
      header("Content-type: video/x-ms-asf");
      echo $asx;
} else {
      //Tell the user that he can't view this asx
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1175915

复制
相关文章

相似问题

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