After reviewing all the answers, I made one solution, configured for my case, with a small amount of each of them:
I again checked the behavior of known vulnerability scanners. They load the page once and with the collected information begin to enter it, changing the contents of the fields using malicious scripts to check certain types of vulnerabilities.
But: What if we sign the form? How? Create a hidden field with random content stored in a Session object. If the value is presented more than n times, we simply create it again. We only need to check if it is consistent, and if it does not just take the necessary actions.
But we can do it even better: why instead of changing the value of the field, do we arbitrarily change the name of the field? Yes, changing the field name in a random order and saving it in the session object is a more complicated solution, because the form is always different, and vulnerability scanners simply load it once. If we do not get input for the field with the saved name, we just do not process the form.
I think this can save a lot of CPU cycles. I tested the vulnerability scanners mentioned in the question and it works great!
Well, thanks you all for , as stated above, before this decision was made with a small amount of each answer.
source share