什么是限制在Express中发送API路由的最佳方法?

时间:2017-03-24 00:50:43

标签: node.js express

我有一个运行Node.js / Express的Web应用程序,我已经做了一些搜索,但我已经做空了。

基本上我有一个网络应用程序,你可以发布通常的,评论,评级等。这一切都很好,但如果有人使用Postman(具有他们的登录凭据)之类的东西,他们可以发出100/1000的评论点击Postman上的POST。

处理此问题的最佳方法是什么?我应该只限制用户操作服务器端(X量和时间之后的评论/评级)还是有更好的方法?

理想情况下,我希望能够使用像Postman这样的软件来提交任何内容 - 我希望通过网站完成所有内容,但我不确定这是否可行,因为它是“sa”路线?

非常感谢任何建议!

2 个答案:

答案 0 :(得分:1)

除非这是你遇到的一个问题,否则我会像一般建议那样建议你的时间更好地花在其他地方。正如他们所说,YAGNI。

在您的实际问题上,处理过载攻击有很多不同的替代措施。最简单的选择是,如果您正在开发的API需要身份验证 - 如果是这样,您可以应用每帐户速率限制。例如,每个用户每分钟100个请求。

你可以使用像express-rate-limit这样的东西来做到这一点。

如果您担心实际的大规模拒绝服务攻击,那么最近需要在请求到达您的应用程序服务器层之前进行缓解。

CloudFlare和Akamai等企业将此服务作为一种服务,您可以将域配置为支持其DDoS的基础架构,然后他们会将审查后的流量转发到您的Express服务器。

答案 1 :(得分:0)

我使用 hpp npm软件包(用于防止HTTP参数污染攻击的Express中间件)来限制通话速率 https://www.npmjs.com/package/hpp