我正在使用下载监视器插件和wordfence。文件太多,仅限成员和其他人下载。
这是我的问题描述;主要问题是用户反复单击相同的下载按钮。另一个问题是,网站内容和资源可能被利用。
%我的80个下载监视器日志记录显示,同一文件在同一时间段(几秒钟后)被下载了至少3-4次(某些情况下为6-7次),另一个是:我的站点大约有1000个文件要下载。用户(订阅者和来宾)可以不间断地下载;似乎是剥削。(顺便说一下,客人不能下载“会员专用”文件;这不是我要问的问题)
规范所有类型下载的一般规则:我认为,任何用户在任何下载后都可以延迟15秒,这是很公平的。我希望有另一种方法,而不是将ip号码记录到数据库中。
下面是一个示例站点,它与我想要的逻辑相同:http://altyazi.org/sub/s/420936/The-Sealed-Room.html在该页面上,如果您过早单击“altyaziyi indir”按钮,将看到一个空白页面,在新页面的左上角写着“flood control”。所以我不认为这个网站的系统正在记录我的ip,然后按时间间隔进行查询,并给出结果,因为防洪页面…操作似乎更简单。。
我向插件支持者询问了这个问题,但他们没有提供任何解决方案。我也在wordfence插件支持页面上询问过,但他们甚至没有返回。我问了托管公司,他们说“我们没有这样的服务”。
非常感谢您的耐心等待。如果您能为我提供一个解决方案,而不是雇佣开发人员或复杂的方式,我将不胜感激:)
SO网友:KAGG Design
您应该实现cookie。
在js文件中,您必须为Load按钮编写一个click处理程序。在处理程序中,您应该检查cookie是否已经存在。如果没有,则需要创建包含当前时间的cookie,并允许用户继续(传播单击事件)。
如果存在cookie,请将当前时间与cookie中存储的时间进行比较。如果间隔小于15秒,请阻止单击(preventDefault(),返回false)。
如果间隔超过15秒,请更新cookie并允许进一步执行click事件。
这是解决任务的算法框架。如果您对javascript有一定的经验,您可以自己创建这段代码。否则,最好雇佣一名开发人员。