FILTER_NULL_ON_FAILURE, 'options' => ['regexp' => "/^[\da-zA-Z-. \/]+$/"], ]); $name = filter_input(INPUT_GET, 'name', FILTER_VALIDATE_REGEXP, [ 'flags' => FILTER_NULL_ON_FAILURE, 'options' => ['regexp' => '/^[^<>:"\/|?]+$/'], ]); $compareWith = filter_input(INPUT_GET, 'compareWith', FILTER_VALIDATE_REGEXP, [ 'flags' => FILTER_NULL_ON_FAILURE, 'options' => ['regexp' => '/^[^<>:"\/|?]+$/'], ]); $hostsListRegex = "/^[\da-zA-Z-.,:\/]+$/"; $protocolePortsListRegex = "/^(([TU]:)?[0-9\-]+|[a-z\-]+)(,([TU]:)?[0-9\-]+|,[a-z\-]+)*$/"; $portsListRegex = "/^([0-9\-]+|[a-z\-]+)(,[0-9\-]+|,[a-z\-]+)*$/"; $tempoRegex = "/^\d+[smh]?$/"; $inputs = filter_input_array(INPUT_GET, [ 'iR' => ['filter' => FILTER_VALIDATE_INT], 'exclude' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], 'sL' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], 'sP' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'P0' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'Pn' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'PS' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], 'PA' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], 'PU' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], 'PE' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'PP' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'PO' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 0, 'max_range' => 255]], 'PR' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'send-ip' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'n' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'R' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'dns-servers' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], 'sS' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'sT' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'sA' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'sW' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'sM' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'sF' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'sN' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'sX' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'PU' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'PM' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'scanflags' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^([URG|ACK|PSH|RST|SYN|FIN]+)$|^([0-2]?\d?\d)$/"]], 'sI' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^[a-zA-Z\d:.-]+(:\d+)?$/"]], 'sO' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'b' => FILTER_VALIDATE_DOMAIN, 'traceroute' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'reason' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'p' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $portsListRegex]], 'F' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'r' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'top-ports' => FILTER_VALIDATE_INT, 'port-ratio' => ['filter' => FILTER_VALIDATE_FLOAT, 'options' => ['min_range' => 0, 'max_range' => 1]], 'sV' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'version-light' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'version-intensity' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 0, 'max_range' => 9]], 'version-all' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'version-trace' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'O' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'osscan-limit' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'osscan-guess' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'T0' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'T1' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'T2' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'T3' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'T4' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'T5' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'min-hostgroup' => ['filter' => FILTER_VALIDATE_INT], 'max-hostgroup' => ['filter' => FILTER_VALIDATE_INT], 'min-parallelism' => ['filter' => FILTER_VALIDATE_INT], 'max-parallelism' => ['filter' => FILTER_VALIDATE_INT], 'min-rtt-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], 'max-rtt-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], 'initial-rtt-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], 'max-retries' => ['filter' => FILTER_VALIDATE_INT], 'host-timeout' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], 'scan-delay' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], 'max-scan-delay' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $tempoRegex]], 'f' => ['filter' => FILTER_VALIDATE_INT], 'mtu' => ['filter' => FILTER_VALIDATE_INT], 'D' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => $hostsListRegex]], 'S' => ['filter' => FILTER_VALIDATE_IP], 'e' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^[a-z\d]+$/"]], 'g' => ['filter' => FILTER_VALIDATE_INT], 'source-port' => ['filter' => FILTER_VALIDATE_INT], 'data-length' => ['filter' => FILTER_VALIDATE_INT], 'ip-options' => ['filter' => FILTER_VALIDATE_REGEXP, 'options' => ['regexp' => "/^\"(R|T|U|L [\da-zA-Z-.: ]+|S [\da-zA-Z-.: ]+|\\\\x[\da-fA-F]{1,2}(\*[\d]+)?|\\\\[0-2]?[\d]{1,2}(\*[\d]+)?)\"$/"]], 'ttl' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 0, 'max_range' => 255]], 'spoof-mac' => ['filter' => FILTER_VALIDATE_MAC], 'badsum' => ['filter' => FILTER_VALIDATE_BOOLEAN], //'6' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'A' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'send-eth' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'send-ip' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'privileged' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'V' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'unprivileged' => ['filter' => FILTER_VALIDATE_BOOLEAN], 'h' => ['filter' => FILTER_VALIDATE_BOOLEAN], ], false) ?: $DEFAULT_ARGS;