【问题标题】:Mask or hide url from a music stream屏蔽或隐藏音乐流中的 url
【发布时间】:2018-11-16 19:52:54
【问题描述】:

我需要屏蔽一些歌曲的外部 URL,用户可以从浏览器中重现它们。作为服务器外部的 URL,我不能将它们(我认为是)作为友好的 URL

现在是这样的:

<audio controls="controls">
  <source src="http://X.X.X.X/music/12345pd?so=/stream" type="audio/ogg" />
</audio>

如果用户在浏览器中查看源代码,他不应该看到 URL,或者无论如何,他必须看到这样的东西:

<audio controls="controls">
  <source src="http://myweb/Rock" type="audio/ogg" />
</audio>

我不在乎解决方案是 jquery、javascript ... 还是另一种复制方法。

【问题讨论】:

  • 完全没有意义。一旦您将它们修改为有效用户,就可以在浏览器开发工具网络中检查源代码。发送到浏览器的任何内容都可以轻松访问
  • 这个想法是在服务器中更改它,并且它在浏览器中的到达方式不同。类似于 301 的东西
  • 那是服务器端任务,不是客户端
  • 是的 charlietfl,但我不知道该怎么做

标签: javascript c# asp.net webforms


【解决方案1】:

我是赞成@charlietfl 评论的人之一,但是您可以执行以下操作:

Random rnd = new Random();
string value = rnd.Next(int.MaxValue).ToString()
Session[trackid] = value;

<audio controls="controls">
  <source src="http://myweb/Play/trackid=@Session[trackid]&value=@value" type="audio/ogg" />
</audio>

然后在播放页面中:

[HttpGet]
public IActionResult Play([FromUri] string trackid, [FromUri] string value)
{   
    if(Session[trackid] == value)
   {
    byte[] b = System.IO.File.ReadAllBytes(trackid + ".ogg");   
     Random rnd = new Random();
     Session[trackid] = rnd.Next(int.MaxValue).ToString();       
    return File(b, "audio/ogg");
   }
  return Content("");
}

这将使您的链接在页面加载时仅工作一次,如果用户复制链接,它将无法工作。

【讨论】:

  • 感谢您的回答。
猜你喜欢
  • 2014-07-21
  • 2016-10-18
  • 1970-01-01
  • 2012-04-23
  • 2022-12-10
  • 2019-05-30
  • 1970-01-01
  • 2011-02-22
  • 1970-01-01
相关资源
最近更新 更多