mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-01-20 06:29:53 +01:00
ceb09ce99a
Previously Etherpad would not pass the correct client IP address through and this caused the rate limiter to limit users behind reverse proxies. This change allows Etherpad to use a client IP passed from a reverse proxy. Note to devs: This header can be spoofed and spoofing the header could be used in an attack. To mitigate additional *steps should be taken by Etherpad site admins IE doing rate limiting at proxy.* This only really applies to large scale deployments but it's worth noting.
25 lines
604 B
JavaScript
25 lines
604 B
JavaScript
try{
|
|
var etherpad = require("../../src/node_modules/etherpad-cli-client");
|
|
//ugly
|
|
} catch {
|
|
var etherpad = require("etherpad-cli-client")
|
|
}
|
|
var pad = etherpad.connect(process.argv[2]);
|
|
pad.on("connected", function(){
|
|
|
|
setTimeout(function(){
|
|
setInterval(function(){
|
|
pad.append("1");
|
|
}, process.argv[3]);
|
|
},500); // wait because CLIENT_READY message is included in ratelimit
|
|
|
|
setTimeout(function(){
|
|
process.exit(0);
|
|
},11000)
|
|
});
|
|
// in case of disconnect exit code 1
|
|
pad.on("message", function(message){
|
|
if(message.disconnect == 'rateLimited'){
|
|
process.exit(1);
|
|
}
|
|
})
|