你好,我正在尝试阻止下载 mp3 歌曲,所以我想问问你们,是否可以区分 flash 请求和普通的 http 请求,我已经检查了 $_SERVER 变量但找不到任何区别,应该怎么办我做? 请提供任何解决方案,
最佳答案
我将描述一种实现您想要的东西的方法,它不简单但也不太复杂。也不确定它是最好的,但它应该有效。
第一步:不要直接链接到 mp3 文件(例如/MySongs/song.mp3),而是将文件放在网站根文件夹之外,并让页面在 URL 上获取所需的文件并以正确的内容类型和所有内容作为结果发送文件的内容,例如GetSong.php?songname=song3
完成此操作后,您就可以更好地控制文件。
第二步:在flash参数中,将/MySongs/song.mp3改成上面的。确保它正常工作。请注意,这仍然没有解决任何问题。
第三步:每当用户向包含抓取歌曲的 flash 的页面发出请求时,为 Session 变量(或 PHP 中的等效变量)分配请求的确切时间戳。在这里,我依赖于 flash 将在同一瞬间发送请求这一事实。
最后一步:在 GetSong.php 中检查上面的 Session 变量,并且仅当当前时间与 Session 中的时间戳完全匹配时才发送文件,可能允许毫秒余量。
破解它工作原理的聪明用户可以绕过它,但它应该让大多数试图获取歌曲的普通人望而却步,即使他们正在使用工具来查看 Flash 是如何请求歌曲的。
关于php - 区分 flash 请求和来自浏览器地址栏的请求,,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365815/