En última instancia, asegurar un sistema no significa necesariamente que sea imposible entrar en él, ya que es prácticamente imposible. En cambio, el objetivo a menudo es hacer que sea lo suficientemente difícil como para que los posibles piratas informáticos necesiten una inmensa cantidad de recursos para hacerlo, de modo que no se molesten en intentarlo o sigan hacia objetivos más fáciles. Los Firewalls de aplicaciones web son solo otra herramienta para ayudarlo a lograr esto. Son capaces de detectar una gran variedad de ataques, incluida la inyección de SQL y XSS, y aunque existen formas de evitarlos, se necesitaría un atacante bastante determinado para hacerlo. Por lo tanto, un WAF puede desempeñar un papel muy útil en una estrategia de defensa en profundidad de múltiples capas.
Sin embargo, tienes razón en que un WAF no es invencible y no debería ser una excusa para escribir un código inseguro, al igual que recibir una vacuna no debería ser una excusa para no lavarte las manos. Se debe tratar solo como una última línea de defensa y los desarrolladores no deben asumir que WAF protegerá contra todas las vulnerabilidades.
Con respecto a CloudFlare, creo que su plan gratuito está destinado principalmente para CDN / almacenamiento en caché y solo proporciona protección contra DDoS y ataques de aplicaciones web básicas. Requieren un plan pagado para un WAF más sofisticado.
(Y solo para aclarar la terminología, asumo que estás hablando de un WAF y no solo de un proxy inverso. Aunque un WAF se puede combinar con un proxy inverso para proteger muchos servidores / sitios a la vez (por ejemplo, CloudFlare), un WAF se puede configurar sin un proxy inverso y viceversa. Como han dicho otros, los proxies inversos a menudo se usan solo con fines de almacenamiento en caché / rendimiento.)