如何防止显示的实际文件路径检查网络终端

时间:2019-07-19 07:51:58

标签: javascript angular

“我正在Web应用程序中播放音频文件。如果我在网络中进行检查,则可以获取音频的确切文件路径。获取音频的实际文件路径会导致安全问题。如何防止这种情况。< / p>

2 个答案:

答案 0 :(得分:-1)

不能。 您可能会使用户难以完成此过程,但是如果浏览器中的应用程序可以从服务器获取任何数据,那么也可以在没有应用程序的情况下完成该过程。

答案 1 :(得分:-1)

您不能阻止文件路径的出现-但是有多种方法可以防止文件路径在应用程序外部使用-或至少可以在应用程序外部轻松使用。

任何文件(Blob)的步骤几乎相同,因此对于音频或视频文件也将相同。

您可以通过downloading the file with XHR and converting it to a blob URL来阻止它-这是Youtube和Netflix对视频所做的-这样,您就可以完全控制身份验证和下载过程(请确保您将每个数据块与{{3 }},以在流式传输信息的同时创建完整的视频。

例如:对于youtube,这是一个视频网址-一段时间后也会被撤消,因此您可能无法使用浏览器打开此文件。

此URL不受保护-但youtube上有受保护的视频文件可提供其高级服务,这些文件可能会出现某些标头和cookie。 为了使其受到充分保护,您必须为每个块生成一次性令牌。

https://r6---sn-4g5ednll.googlevideo.com/videoplayback?expire=1563544755&ei=U3gxXZKKFoKZgQeOuYuoBA&ip=62.41.73.80&id=hHW1oY26kxQ.348&itag=140&source=yt_live_broadcast&requiressl=yes&mm=44%2C26&mn=sn-4g5ednll%2Csn-5hne6nsz&ms=lva%2Conr&mv=u&mvi=5&pl=24&live=1&hang=1&noclen=1&mime=audio%2Fmp4&gir=yes&compress=yes&mt=1563522739&fvip=4&keepalive=yes&c=WEB&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Clive%2Chang%2Cnoclen%2Cmime%2Cgir%2Ccompress&sig=ALgxI2wwRQIhANT3eXWZbPN0bFz5j7Zs56veNXpvNuXcvt0yOzwlNx-zAiB4ZjcCA7GTn6k16AiwQcOq2XaUkA3SWFuIdskws8MqBQ%3D%3D&lsparams=mm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl&lsig=AHylml4wRgIhAJ3FqpB1r_T_ErODyHxwcWZZdhxeVJ1yTdovfn0BPBmuAiEA5KbeCcZXe8C7l6W5IjmXWXwN1VXvgwiP7Jn2tWdReoc%3D&alr=yes&cpn=rp9-DtQeCOUxaQZ9&cver=2.20190718&sq=1134933&rn=10&rbuf=15966

在运行时已转换为此,并且该URL仅在网站上的用户会话本地,除非将脚本注入网站,否则无法用于手动下载。

blob:https://www.youtube.com/f49abcd9-d431-42f0-8e04-4e156a78a8cc

现在,您需要通过仅以常规方式对用户进行身份验证(仅使用HTTP cookie-用户无法轻松获取视频)+ CSRF + CORS,来确保可以访问该视频

  1. range request-仅接受带有access-control-allow-origin: https://www.youtube.com的请求
  2. CORS-仅接受经过验证的用户(cookie)
  3. JWT-防止跨站点伪造的令牌(即,用户未经访问网站就无法访问它)-每次用户会话后,它们都将失效。
  4. SSL-使用SSL防止容易的拦截总是一个好主意

这比我说的要困难得多,而且聪明的黑客仍然可以通过额外的步骤来下载文件(有Youtube / Udemy / Netflix等下载器...)-但在大多数情况下,它将阻止大多数用户轻松下载它。

**如果不清楚(没有解决方案仅涉及客户端),则该修补程序必须来自服务器端,以防止访问该文件。