UNPKG

@aikidosec/firewall

Version:

Zen by Aikido is an embedded Web Application Firewall that autonomously protects Node.js apps against common and critical attacks

35 lines (34 loc) 1.02 kB
"use strict"; /** * Based on https://github.com/validatorjs/validator.js/blob/master/src/lib/isFQDN.js * MIT License - Copyright (c) 2018 Chris O'Hara */ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isFQDNString; function isFQDNString(str) { const parts = str.split("."); if (parts.length < 2) { return false; } const tld = parts[parts.length - 1]; if (!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) { return false; } return parts.every((part) => { if (part.length > 63) { return false; } if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) { return false; } // disallow full-width chars if (/[\uff01-\uff5e]/.test(part)) { return false; } // disallow parts starting or ending with hyphen if (/^-|-$/.test(part)) { return false; } return true; }); }