如何在时间限制内禁用上载

时间:2011-01-19 04:19:33

标签: php upload limit

如何在限时上传内容后阻止客户上传更多内容?基于IP地址。

3 个答案:

答案 0 :(得分:3)

根据用户的IP地址禁用是无效的。除了Kel所说的,客户端也可能有动态IP,或者使用Tor。

真正唯一的方法是强迫用户以某种方式识别他/她自己。有很多选择:Facebook,OpenID,Twitter等。您可以为您的网站创建一个用户帐户系统,但这对用户来说会更加不方便;使用已经存在的基础设施会更好。

至于技术方面,基本上你会保留一个包含上传文件的用户的数据库表,以及一个保存上传时间的时间戳列。您将定期使用Cron作业遍历此表,并删除早于预定义阈值的用户。

当某人尝试上传时,请检查他们是否在数据库中。如果是,则无法上传;如果他们不是,他们就会好起来。

答案 1 :(得分:2)

您可以使用$ _SERVER ['REMOTE_ADDR']和$ _SERVER ['HTTP_X_FORWARDED_FOR']变量检索IP地址,并将其与请求日期一起存储在某处(例如,在数据库中)。在每个上传请求中,您可以检查(是否来自此IP的上次上传时间) - (当前时间)>周期。

BTW,用户并不总是绑定到单个IP,并且许多用户可以使用单个IP。因此,例如,这将限制隐藏在同一NAT后面的用户的上传。

答案 2 :(得分:0)

我想没有完全的证明方式,对于任何建议都有反驳论据。

但话说回来,网站仍允许上传和直播。

您可以结合识别用户的不同方法:

  1. 常规Cookie

  2. Flash Cookie

  3. IP地址

  4. 所有这些都可以克服,但不是每个人都知道闪存cookie,有些人仍然通过打开/关闭调制解调器来改变他们的IP。永远不要低估人们的懒惰/无知:)