Merge pull request +13476 from c9/preview-ratelimit

Hotfix: rate limit preview per username
pull/290/head
Lennart C. L. Kats 2016-04-15 21:54:32 +02:00
commit 8d0bc0b6e6
2 zmienionych plików z 12 dodań i 1 usunięć

Wyświetl plik

@ -1,5 +1,6 @@
var Session = require("connect").session;
var assert = require("assert");
var error = require("http-error");
module.exports = function startup(options, imports, register) {
@ -29,6 +30,15 @@ module.exports = function startup(options, imports, register) {
var sessionRoutes = connectModule();
connect.useSession(sessionRoutes);
sessionRoutes.use(
function(req, res, next) {
if (/^\/geckolala\//.test(req.url))
return next(new error.TooManyRequests("Rate limit exceeded"));
next();
}
);
sessionRoutes.use(Session(sessionOptions, cookie));
register(null, {

Wyświetl plik

@ -20,7 +20,7 @@ define(function(require, exports, module) {
var handler = imports["preview.handler"];
var userContent = imports["user-content.redirect"];
var getVfsServers = imports["vfs.serverlist"].getServers;
var ratelimit = require("c9/ratelimit");
var frontdoor = require("frontdoor");
var error = require("http-error");
@ -52,6 +52,7 @@ define(function(require, exports, module) {
}, [
requestTimeout(15*60*1000),
require("./lib/middleware/sanitize-path-param"),
ratelimit("username", 20 * 1000, 1000),
handler.getProjectSession(),
handler.getRole(db),
handler.getProxyUrl(function() {