24 lines
No EOL
1.1 KiB
JavaScript
24 lines
No EOL
1.1 KiB
JavaScript
module.exports = ({ action, clientAsn, clientASNDescription, clientRequestHTTPProtocol, clientRequestHTTPMethodName, clientRequestHTTPHost, clientRequestPath, clientRequestQuery, datetime, rayName, ruleId, userAgent = 'Empty string', source, clientCountryName }) => {
|
|
const fields = [
|
|
{ label: 'Action taken', value: action?.toUpperCase() },
|
|
{ label: 'ASN', value: `${clientAsn} (${clientASNDescription})` },
|
|
{ label: 'Protocol', value: `${clientRequestHTTPProtocol} (method ${clientRequestHTTPMethodName})` },
|
|
{ label: 'Domain', value: clientRequestHTTPHost },
|
|
{ label: 'Endpoint', value: clientRequestPath },
|
|
{ label: 'Query', value: clientRequestQuery },
|
|
{ label: 'Timestamp', value: datetime },
|
|
{ label: 'Ray ID', value: rayName },
|
|
{ label: 'Rule ID', value: ruleId },
|
|
{ label: 'UA', value: userAgent },
|
|
];
|
|
|
|
const reportLines = fields
|
|
.filter(({ value }) => value)
|
|
.map(({ label, value }) => `${label}: ${value}`);
|
|
|
|
return `Triggered Cloudflare WAF (${source}) from ${clientCountryName}.
|
|
${reportLines.join('\n')}
|
|
|
|
Report generated by Cloudflare-WAF-To-AbuseIPDB:
|
|
https://github.com/sefinek/Cloudflare-WAF-To-AbuseIPDB`;
|
|
}; |