扫码关注官方订阅号
java中可以使用token来进行拦截重复提交问题,
nodejs中是否有相关的插件或者module来解决这个安全问题。。
理论上来说,越简单越好。。。队列什么的,唉。。
参考cnode中《node.js 在服务器端避免重复提交有没有什么好办法吗?》
小伙看你根骨奇佳,潜力无限,来学PHP伐。
@KaiChen :3Q 4 U answer ~~
我用express-rate-limit实现了一下,
在不改写这个module(以下简称rl)的前提下,会有几个问题:
首先,看源码,rl将req.ip存放在一个全局变量中,当使用nginx做反向代理的时候,所有的req.ip会指向nginx的代理ip地址,所以这个rl在生产上应该会变现出ip重复问题
其次,max限制次数的逻辑问题,当设置max大于1之后,次数越多,请求的延迟时间越长,找到一个解决方法是设置【delayMs:0】
最主要的,他的返回message只支持string型,“first argument must be a string or Buffer”,在res的返回中,我们绝大部分使用的是res.json,纯string数据需要使用正则去进行匹配来判断是否是成功请求。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
@KaiChen :3Q 4 U answer ~~
我用express-rate-limit实现了一下,
在不改写这个module(以下简称rl)的前提下,会有几个问题:
首先,看源码,rl将req.ip存放在一个全局变量中,当使用nginx做反向代理的时候,所有的req.ip会指向nginx的代理ip地址,所以这个rl在生产上应该会变现出ip重复问题
其次,max限制次数的逻辑问题,当设置max大于1之后,次数越多,请求的延迟时间越长,找到一个解决方法是设置【delayMs:0】
最主要的,他的返回message只支持string型,“first argument must be a string or Buffer”,在res的返回中,我们绝大部分使用的是res.json,纯string数据需要使用正则去进行匹配来判断是否是成功请求。