Skip to content

Instantly share code, notes, and snippets.

@egermano
Last active June 23, 2025 18:04
Show Gist options
  • Save egermano/35da5cbf5ba7e944296b224d95416a4b to your computer and use it in GitHub Desktop.
Save egermano/35da5cbf5ba7e944296b224d95416a4b to your computer and use it in GitHub Desktop.
Fingerprint Deny - Azion Firewall Function
addEventListener("firewall", (event) => {
const { headers, metadata } = event.args.log || { headers: [], metadata: [] };
const fingerprints = event.args.fingerprints || [];
const { server_fingerprint } = event.request.metadata;
const getPropertiesTolLog = (obj, proptertiesList) =>
proptertiesList.reduce((acc, prop) => {
if (obj.hasOwnProperty(prop)) {
acc[prop] = obj[prop];
}
return acc;
}, {});
if (headers.length > 0) {
const headersToLog = getPropertiesTolLog(event.request.headers, headers);
console.log("Headers", headersToLog);
}
if (metadata.length > 0) {
const metadataToLog = getPropertiesTolLog(event.request.metadata, metadata);
console.log("Metadata", metadataToLog);
}
if (
fingerprints &&
Array.isArray(event.args.fingerprints) &&
fingerprints.some((fingerprint) => fingerprint === server_fingerprint)
) {
console.log("Fingerprint matched, denying", server_fingerprint);
event.deny(); // Bloqueia a solicitação
return;
}
event.continue(); // Permite a solicitação
});
{
"fingerprints": [],
"log": {
"headers": [],
"metadata": [
"server_fingerprint"
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment