gpt4 book ai didi

JavaScript 反洪水垃圾邮件保护?

转载 作者:行者123 更新时间:2023-11-29 10:47:40 25 4
gpt4 key购买 nike

我想知道是否有可能实现某种粗略的 JavaScript 反洪水保护。我的代码通过 AJAX 从服务器接收事件,但有时这些事件可能非常频繁(它们不受我控制)。

我试图想出一个解决这个问题的方法,我写了一个小脚本:http://jsfiddle.net/Ry5k9/

var puts = {};

function receiverFunction(id, text) {
if ( !puts[id] ) {
puts = {};
puts[id] = {};
}

puts[id].start = puts[id].start || new Date();
var count = puts[id].count = puts[id].count + 1 || 0;
var time = (new Date() - puts[id].start) * 0.001;

$("text").set("text", (count / time.toFixed()).toString() + " lines/second");

doSomethingWithTextIfNotSpam(text);
}
};

我认为它可以有效抵御此类攻击,但我想知道它是否可以改进或重写?

到目前为止,我认为每秒超过 3 或 2.5 行的所有内容都像是垃圾邮件,但随着时间的推移(因为开始标记已设置......好吧......在开始时),违规者可能只是闲置了一段时间然后开始泛滥,实际上每分钟从不超过 1 行。

此外,我想补充一点,我使用了 Mootools 和 Lo-Dash 库(也许它们提供了一些有趣的方法),但如果可以使用原生 JS 来完成则更好。

非常感谢任何见解!

最佳答案

如果您担心特定 javascript 函数的触发频率,您可以 debounce函数。

在你的例子中,我猜它会是这样的:

onSuccess: function(){ _.debounce(someOtherFunction, timeOut)}; 

timeout 是您希望调用 someOtherFunction 的最大频率。

关于JavaScript 反洪水垃圾邮件保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16605756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com