From 20e6b22d0dfb16b9735d25d73cb4bacb87109a67 Mon Sep 17 00:00:00 2001 From: adrien <adrien@malingrey.fr> Date: Tue, 8 Oct 2024 11:14:31 +0200 Subject: [PATCH] tag validation --- scan-options.php | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/scan-options.php b/scan-options.php index 2cfe325..5fd489d 100755 --- a/scan-options.php +++ b/scan-options.php @@ -41,7 +41,7 @@ Exemples: <?=$_SERVER['REMOTE_ADDR']; ?>/24 <?=$_SERVER['SERVER_NAME']; ?>" /> </div> <fieldset class="ui segment"> - <legend class="ui header">Découverte des hôtes</legend> + <h3 class="ui header">Découverte des hôtes</h3> <div class="inline field"> <div class="ui checkbox"> <input type="checkbox" id="PnInput" name="Pn"/> @@ -56,7 +56,7 @@ Exemples: <?=$_SERVER['REMOTE_ADDR']; ?>/24 <?=$_SERVER['SERVER_NAME']; ?>" /> </fieldset> <fieldset class="ui segment"> - <legend class="ui header">Techniques de scan</legend> + <h3 class="ui header">Techniques de scan</h3> <div class="field"> <label>Ne scanner que les ports</label> <input type="text" id="pInput" name="p" placeholder="Ports" list="servicesList" pattern="(([TU]:)?[0-9\-]+|[a-z\-]+)(,([TU]:)?[0-9\-]+|,[a-z\-]+)*" @@ -89,25 +89,30 @@ foreach ($services as $name => $port) { </datalist> </main> <script> + const hostPattern = /^[a-zA-Z\d._\/\-]+$/ + const portPattern = /^([\d-]+|[a-z\-]+)$/ + const protocolePortPattern = /^(([TU]:)?[\d\-]+|[a-z\-]+)$/ + + const targetsWhitelist = Array.from(targetsList.options).map(option => option.value) + const servicesWhitelist = Array.from(servicesList.options).map(option => option.value) + new Tagify(targetsInput, { - pattern: /^[a-zA-Z\d._/-]+$/, - delimiters: ",| ", + validate: (data) => hostPattern.test(data.value), + delimiters: " ", originalInputValueFormat: tags => tags.map(tag => tag.value).join(' '), - whitelist: Array.from(targetsList.options).map(option => option.value), + whitelist: targetsWhitelist, }) new Tagify(PSInput, { - pattern: /^([\d-]+|[a-z-]+)$/, - delimiters: ",| ", + validate: (data) => portPattern.test(data.value), originalInputValueFormat: tags => tags.map(tag => tag.value).join(','), - whitelist: Array.from(servicesList.options).map(option => option.value), + whitelist: servicesWhitelist, }) new Tagify(pInput, { - pattern: /^(([TU]:)?[\d-]+|[a-z-]+)$/, - delimiters: ",| ", + validate: (data) => protocolePortPattern.test(data.value), originalInputValueFormat: tags => tags.map(tag => tag.value).join(','), - whitelist: Array.from(servicesList.options).map(option => option.value), + whitelist: servicesWhitelist, }) newScanForm.onsubmit = function (event) {