嘿伙计们,我目前通过将他们的文件位置引用到用户的flash mp3播放器来呈现我的mp3。用户/机器人是否有可能进入您的网站并以某种方式连续执行MP3并消耗带宽?如果是这样,你怎么能阻止这个? (我用php编程)。提前感谢任何建议。
答案 0 :(得分:3)
我想如果flash播放器从你的服务器下载mp3,那么,有一种方法可以从你的服务器下载mp3文件。
这意味着,知道他们的URL,机器人(甚至真实用户)可以下载它们。
考虑到使用播放器收听音乐的人不应该每3分钟左右下载一个以上的mp3文件(好吧,一个不应该比音乐快^^),你可以进行一些检查,例如:
答案 1 :(得分:2)
这是一个非常高级的答案,因为我不熟悉你正在做的事情的细节,但实际上没有任何东西阻止机器人不断地请求文件,如果它能以某种方式确定它在哪里存储在服务器上(url)。正如Ignacio建议的那样,你可以在swf源中做一些事情来确保它不会连续请求文件,但是如果他们可以在服务器上找到文件的位置,他们可以一起绕过swf。我建议的是,创建某种网关页面(在php中)进行某种检查,以查看客户端是否在过去的X分钟内请求了所请求的文件(可能是IP地址*)。如果检查没问题,那么php脚本可以处理到客户端的数据流,如果没有,那么它将拒绝该请求而不授予对数据的访问权限。也就是说,如果他们可以确定文件的实际位置,您仍然很容易受到攻击。您可能希望配置一些服务器规则,以便将所有以.mp3结尾的请求转发到网关文件,以防止直接访问。
*应该注意的是,如果您要实施某种速率检查,则需要非常小心如何执行此操作。仅IP就不够好,因为如果你有一堆用户在同一个NAT网关(例如公司)后面,如果事实上有20个唯一用户请求同一个文件,那么请求实际上只是来了从一个IP地址。理想情况下,您可以使用用户代理数据的某种组合以及IP地址或某些会话信息。
希望这有帮助!
答案 2 :(得分:1)
如果您的Flash播放器没有(合理地)在客户端缓存MP3,那么我会说是时候找到一个新播放器...
答案 3 :(得分:1)
是的,机器人很可能会这样做。
你如何防止它主要取决于你如何呈现数据,但你可能想要的是某种速率限制。例如,您可以拒绝来自同一IP地址的多个同时数据文件请求 - 或者至少将其限制为少量数据,请记住某些用户可能共享IP地址。