Initial commit
This commit is contained in:
commit
6305442f26
3 changed files with 63 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
commit.sh
|
58
index.js
Executable file
58
index.js
Executable file
|
@ -0,0 +1,58 @@
|
||||||
|
var EasyWaf = require('easy-waf');
|
||||||
|
if(EasyWaf.default) {
|
||||||
|
EasyWaf = EasyWaf.default;
|
||||||
|
}
|
||||||
|
var fs = require("fs");
|
||||||
|
var os = require("os");
|
||||||
|
var url = require("url");
|
||||||
|
var easywafconfig = {};
|
||||||
|
var logm = {};
|
||||||
|
if (fs.existsSync("easywaf-config.json")) easywafconfig = JSON.parse(fs.readFileSync("easywaf-config.json").toString())
|
||||||
|
easywafconfig.preBlockHook = function(req, moduleInfo, ip) {
|
||||||
|
try {
|
||||||
|
logm[ip]("Request blocked by EasyWAF. Module: " + moduleInfo.name);
|
||||||
|
} catch (ex) {
|
||||||
|
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
easywafconfig.disableLogging = true;
|
||||||
|
const easyWaf = EasyWaf(easywafconfig);
|
||||||
|
|
||||||
|
function Mod() {}
|
||||||
|
Mod.prototype.callback = function callback(req, res, serverconsole, responseEnd, href, ext, uobject, search, defaultpage, users, page404, head, foot, fd, elseCallback, configJSON, callServerError) {
|
||||||
|
return function() {
|
||||||
|
logm[req.socket.remoteAddress] = serverconsole.errmessage;
|
||||||
|
//REQ.BODY
|
||||||
|
function readableHandler() {
|
||||||
|
try {
|
||||||
|
req.body = req._readableState.buffer._getString();
|
||||||
|
if (req.headers["content-type"] == "application/x-www-form-urlencoded") req.body = url.parse("?" + req.body.strip(), true).query;
|
||||||
|
if (req.headers["content-type"] == "application/json") req.body = JSON.parse(req.body.strip());
|
||||||
|
} catch (ex) {
|
||||||
|
}
|
||||||
|
|
||||||
|
//EASYWAF
|
||||||
|
easyWaf(req, res, function() {
|
||||||
|
if (href == "/easywaf-config.json" || (os.platform() == "win32" && href.toLowerCase() == "/easywaf-config.json")) {
|
||||||
|
if (callServerError) {
|
||||||
|
callServerError(403, "easy-waf-integration/1.0.0");
|
||||||
|
} else {
|
||||||
|
res.writeHead(403, "Forbidden", {
|
||||||
|
"Server": "SVR.JS"
|
||||||
|
});
|
||||||
|
res.end("403 Forbidden!");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
elseCallback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(req._readableState.length > 0 || req._readableState.ended) {
|
||||||
|
readableHandler();
|
||||||
|
} else {
|
||||||
|
req.once("readable", readableHandler);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
module.exports = Mod;
|
4
mod.info
Executable file
4
mod.info
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"name": "Integration with EasyWAF",
|
||||||
|
"version": "1.1.0"
|
||||||
|
}
|
Loading…
Reference in a new issue