Estoy creando una API de Ruby on Rails que publica en webhooks que el usuario de la API puede crear, cada vez que se crea, actualiza o destruye un recurso que él administra, utilizando gema HTTParty . Esto me hizo pensar: estoy validando que la URL de webhook es de hecho una URL válida, pero eso es todo.
¿Qué pasa si, por ejemplo, la API publica en un webhook que redirige para siempre? O, tal vez incluso peor, un webhook que a su vez se comunica con la API nuevamente, lo que genera más webhooks, de modo que eventualmente la API tiene que manejar una cantidad infinita de webhooks.
Estos son solo dos ejemplos, pero creo que podrían suceder muchas más.
Lo único que se me ha ocurrido es poner todas las publicaciones en webhooks en tareas en segundo plano, para que al menos la carga de trabajo se distribuya a los trabajadores, en caso de que alguien intente un ataque de DOS (pero, de nuevo, no estoy seguro si que me protege adecuadamente de los ataques de DOS).
¿Existen otras amenazas / inconvenientes comunes al utilizar webhooks? ¿Qué puedo hacer para defenderme de webhooks dañinos y cómo puedo detectarlos?