This OWASP article mentioned that "Using data validation, only reflected XSS can be detected and prevented, persistent XSS cannot be detected, DOM-based XSS only to be limited degree if part of the attack is sent in parameters of the request." Why is it so?
I understand once the malicious script gets stored in the application, now any GET/POST request won't look like malicious but the script will get executed at victim side. However to carry out a persistent XSS, an attacker has to send a malicious looking request to the server which should be sensed by WAF and hence should be stopped to get executed.