Para evitar esto hay varios métodos, uno de los principales es construir un token que nos ayude a saber el origen de las peticiones que nuestros servicios reciben, de esta manera aseguramos que sea una petición legitima y no una forjada.
En este caso vamos a crear un token CSRF, es decir, un token para evitar el Cross-Site Request Forgery que no es más que una petición que se hace pasar como si fuera de nuestro sitio para confundir a nuestra aplicación, esto es muy común que suceda, por lo que con una comprobación podemos reducir el riesgo de forma considerable, frameworks como Django en Python lo incorporan de forma nativa y Laravel también tiene su implementación.
¿Qué hacer?
1- Primero debemos crear una ruta en la cual vamos a alojar una vista que va a generar un token, este va a ser el que utilizaremos luego para poder verificar la procedencia de la petición, para ello vamos a incluir el método token() de la clase Session.
Para ello en el método GET de la ruta creamos el token y en el método POST de la misma hacemos la comprobación, veamos en la siguiente imagen como debe lucir nuestro código:
2- Ahora en nuestro siguiente paso vamos a crear un filtro que efectivamente va a hacer la comparación de nuestro token que recién creamos, en este caso vamos al archivo filters.php y vamos a comparar el token de la sesión del usuario con el que se imprime en el formulario, si hay coincidencia el filtro es positivo, si no se niega la acción.
Vamos a lanzar una excepción en caso que no exista la coincidencia del token. Veamos cómo queda el código para el archivo en cuestión:
3- Finalmente construimos la vista, en ella vamos a crear un campo utilizando la clase Form y un método llamado token(), este va a crear un campo oculto con el valor de nuestro token, este es el que va a tomar nuestro filtro al momento de hacer el envío por POST.
Entonces en nuestra aplicación vamos a generar un archivo llamado csrf.php en la carpeta views, para ello vamos a crear un formulario y agregar algunos campos incluyendo el que mencionamos anteriormente que conllevará el token:
Ya con esto cuando visitemos en nuestra aplicación la vista csrf.php veremos que podemos enviar datos con nuestro formulario, sin embargo si intentamos enviar un formulario fuera de nuestra aplicación a la misma vista vía POST obtendremos una excepción, impidiendo así que se inserten datos erróneos.
Con esto finalizamos este tutorial, a pesar que esto conlleva un poco más de trabajo es altamente recomendable crear tokens de seguridad, ya que con ello evitaremos que nuestra seguridad pueda ser vulnerada.