Actualmente soy un desarrollador que está realizando mi primera incursión en el desarrollo web, principalmente utilizando servicios C # ASP.NET como MVC y Web API. Al entrar en el lado HTTP de las cosas, actualmente estoy decidiendo si usar o no POST o GET al acceder a mis modelos de datos.
Obviamente, estaría usando POST cuando mi capa de repositorio se está comunicando con las fuentes de datos, pero al suponer cómo mi controlador analizará las entradas del usuario (con esto siendo una aplicación web frontal), me puse nervioso al pensar pasando valores de información algo sensibles a través de HTTP GET, ya que se ingresarán a través de la URL. Al recordar en la educación los peligros de la inyección de SQL, tenemos un presentimiento (infundado) de que solo debería usar POST cuando vaya a mi repositorio que se comunica con mis bases de datos.
¿Tengo razón al suponer que existen problemas de seguridad válidos con el uso de HTTP GET para enviar parámetros a una capa de repositorio que se comunica con mis bases de datos?
Naturalmente, estaría aplicando la validación en ambos extremos, pero me parece que GET tiene un rango de ataque más amplio que POST. Me gustaría que mi validación fuera estrecha y estricta.