diff --git a/blacklist b/blacklist index b84d973..f748859 100644 --- a/blacklist +++ b/blacklist @@ -1,4 +1,4 @@ -Can be username and IP +Can be username and IP and referer username 0.0.0.0 175.180.108.110 diff --git a/routes/all.js b/routes/all.js index 2765d7a..9df5e1c 100644 --- a/routes/all.js +++ b/routes/all.js @@ -3,9 +3,9 @@ var blank = require('../tools/blank'); module.exports = function (req, res, next) { - if (blank(req.headers.host)) { - logger.info(`Reject POST form ${req.headers.host} for black host.`); - res.send(`{"code": -6, "msg": "Rejected for black host."}`); + if (req.headers.referer && blank(req.headers.referer)) { + logger.info(`Reject POST form ${req.headers.referer} for black referer.`); + res.send(`{"code": -6, "msg": "Rejected for black referer."}`); return; } diff --git a/tools/blank.js b/tools/blank.js index a517232..8c0be5a 100644 --- a/tools/blank.js +++ b/tools/blank.js @@ -2,5 +2,10 @@ var fs = require('fs'); var blanklist = fs.readFileSync('blacklist').toString().split('\n'); module.exports = function (text) { - return blanklist.indexOf(text.split(',')[0]) !== -1; + for (var i = 0; i < blanklist.length; i++) { + if (new RegExp(blanklist[i]).test(text)) { + return true; + } + } + return false; } \ No newline at end of file