Полноценного метода защиты вашего api не существует, потому что с помощью подходящих инструментов и следуя некоторым руководствам в Интернете, любой может просмотреть весь ваш запрос api, заголовки, токены и т. Д. c.
Все, что вы делаете или храните в приложении, уже взломано, поэтому подписи, , ssl, шифрование, токены и т. Д. c не так полезны, если злонамеренные пользователи имеют доступ к приложению. Это может усложнить задачу для злоумышленников, но специализированный вариант может ее преодолеть.
Использование аутентификации по крайней мере заставляет пользователей регистрироваться, прежде чем они смогут использовать ваш api, и вы можете заблокировать пользователя при необходимости. Наряду с требованием подтверждения адреса электронной почты пользователям, которые используют sh для злоупотребления вашим API, потребуются как минимум действующие адреса электронной почты. Но поскольку вы упоминаете о защите без аутентификации, это выходит за рамки.
Вы можете в некоторой степени защитить свой api, используя ограничение скорости. laravel имеет встроенное ограничение скорости с помощью промежуточного программного обеспечения дроссельной заслонки. Вы можете использовать это, чтобы ограничить количество раз, когда api может вызываться в определенном временном интервале по IP-адресу.
Далее будет блокировка IP. Если будет обнаружена какая-либо вредоносная активность, вы можете заблокировать IP-адрес. Но это можно преодолеть с помощью vpn, и злоумышленник может также заблокировать чей-то другой IP-адрес таким образом.
Captcha может помочь против ботов, но также может раздражать обычных пользователей.
Другой метод будет ограничением с cors, те, кто сталкивался с проблемами cors, точно знают, насколько это может раздражать, но он не будет работать в собственных приложениях (или вы можете попробовать pwa ).
И в в худшем случае вы можете go с некоторыми условиями и судебным иском