我有一个运行node.js/express的web应用程序,我做了一些搜索,结果没有找到。
基本上我有一个网页应用程序,你可以张贴通常,评论,评级,等等。这都是好的,但如果有人使用像邮递员(与他们的登录凭证)他们可以激发100/1000的评论,只需点击邮递员上的张贴。
处理这件事最好的办法是什么?我应该只对服务器端的用户操作进行速率限制(X amount&time后的comments/ratings),还是有更好的方法?
理想情况下,我想起飞,能够使用软件,像邮递员提交任何东西--我想它所有通过网站,但我不确定这是否可能,因为这是一个路线?
如有任何建议,不胜感激!
我使用hpp npm包(防止HTTP参数污染攻击的快速中间件)来限制调用速率https://www.npmjs.com/package/hpp
除非这是你正在遇到的一个积极的问题,作为一般的建议,我建议你最好把时间花在其他地方。就像他们说的那样。
在您的实际问题上,处理过载攻击有许多不同的替代措施。最简单的选择是,如果您正在开发的API需要身份验证--如果是这样,您可以应用一个每个帐户的速率限制。例如,每个用户每分钟100个请求。
您可以使用express-rate-limit之类的东西来实现这一点。
如果您担心实际的大规模拒绝服务攻击,那么目前需要在请求到达您的应用程序服务器层之前很久就进行缓解。
像CloudFlare和Akamai这样的企业将此作为一种服务提供,在这里,您将您的域配置为转到他们支持DDOS-的基础设施,然后他们会将经过审查的流量转发到您的Express服务器。
问题内容: 最近的JVM有很多用于垃圾收集的XX参数(例如,请参见此处),但是哪些选项可以使客户端Swing应用程序真正更好地执行? 我应该注意到,让客户端Java应用程序真正困扰我的一件事是世界级垃圾回收的大量延迟。在Intelli-J IDEA中,我看到它进行了三分钟或更长时间。 编辑:感谢您的所有答复。只是为了报告一下,我使用了此处建议的设置,将IDEA的CMS垃圾收集器(这是大多数阅读此问
问题内容: 在Clojure中制作 GUI的最佳方法是什么? 有一些功能性Swing或SWT包装器的示例吗?还是与JavaFX声明性GUI描述进行了某些集成,可以使用某些宏轻松地将它们包装到s表达式中? 有教程吗? 问题答案: 我会谦虚地建议跷跷板。 这是一个基于REPL的教程,假定您没有Java或Swing知识。 跷跷板很像@tomjen的建议。这是“你好,世界”: 这是@Abhijith和@d
问题内容: 复制列表的最佳方法是什么?我知道以下方法,哪种更好?还是有另一种方法? 问题答案: 如果要浅拷贝(不复制元素),请使用: 如果要进行深层复制,请使用复制模块:
问题内容: 我有一些代码遍历从数据库中查询出来的列表,并对该列表中的每个元素进行HTTP请求。该列表有时可能是一个相当大的数目(成千上万个),并且我想确保我不会遇到具有成千上万个并发HTTP请求的Web服务器。 该代码的缩写版本目前看起来像这样… 该代码在节点4.3.2上运行。重申一下,是否可以进行管理,以便在任何给定时间仅进行一定数量的承诺? 问题答案: 请注意,创建诺言本身不会触发诺言开始工作
问题内容: Java有哪些好的电子邮件地址验证库?公用验证器是否有替代方案? 问题答案: pache Commons通常被称为一个可靠的项目。不过请记住,如果您想确保它是真实的电子邮件,并且所有者希望在您的网站上使用它,则仍然必须向该地址发送一封验证电子邮件。 编辑:有一个错误,它对域的限制太严格,导致它不接受来自新TLD的有效电子邮件。 此错误已于03 / Jan / 15 02:48在comm
CRUD代表创建,读取,更新,删除。这是四种方法(如果区分查看一个记录和查看所有记录,则是五种方法)。在Rails中,处理CRUD的规范方法似乎包括七种方法。例如,使用 速记法为Order对象创建路由会生成以下七条路由: 这就是我困惑的根源。为 和 设置单独的操作/路由有什么意义?使用单独的操作查看页面和在数据库中创建记录有什么好处?我理解它是如何在Rails中实现的,例如: 在使用Rails之前