kopia lustrzana https://github.com/c9/core
Merge pull request +13476 from c9/preview-ratelimit
Hotfix: rate limit preview per usernamepull/290/head
commit
8d0bc0b6e6
|
@ -1,5 +1,6 @@
|
||||||
var Session = require("connect").session;
|
var Session = require("connect").session;
|
||||||
var assert = require("assert");
|
var assert = require("assert");
|
||||||
|
var error = require("http-error");
|
||||||
|
|
||||||
module.exports = function startup(options, imports, register) {
|
module.exports = function startup(options, imports, register) {
|
||||||
|
|
||||||
|
@ -29,6 +30,15 @@ module.exports = function startup(options, imports, register) {
|
||||||
var sessionRoutes = connectModule();
|
var sessionRoutes = connectModule();
|
||||||
connect.useSession(sessionRoutes);
|
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));
|
sessionRoutes.use(Session(sessionOptions, cookie));
|
||||||
|
|
||||||
register(null, {
|
register(null, {
|
||||||
|
|
|
@ -20,7 +20,7 @@ define(function(require, exports, module) {
|
||||||
var handler = imports["preview.handler"];
|
var handler = imports["preview.handler"];
|
||||||
var userContent = imports["user-content.redirect"];
|
var userContent = imports["user-content.redirect"];
|
||||||
var getVfsServers = imports["vfs.serverlist"].getServers;
|
var getVfsServers = imports["vfs.serverlist"].getServers;
|
||||||
|
var ratelimit = require("c9/ratelimit");
|
||||||
|
|
||||||
var frontdoor = require("frontdoor");
|
var frontdoor = require("frontdoor");
|
||||||
var error = require("http-error");
|
var error = require("http-error");
|
||||||
|
@ -52,6 +52,7 @@ define(function(require, exports, module) {
|
||||||
}, [
|
}, [
|
||||||
requestTimeout(15*60*1000),
|
requestTimeout(15*60*1000),
|
||||||
require("./lib/middleware/sanitize-path-param"),
|
require("./lib/middleware/sanitize-path-param"),
|
||||||
|
ratelimit("username", 20 * 1000, 1000),
|
||||||
handler.getProjectSession(),
|
handler.getProjectSession(),
|
||||||
handler.getRole(db),
|
handler.getRole(db),
|
||||||
handler.getProxyUrl(function() {
|
handler.getProxyUrl(function() {
|
||||||
|
|
Ładowanie…
Reference in New Issue