Вы не можете эффективно отклонить соединения, если не предоставите каждому клиенту закрытый ключ, который вы можете отозвать по отдельности. Но это, вероятно, излишне. Вам не нужно пуленепробиваемое решение, если большинство людей не потрудится запустить пулю.
Это вопрос безопасности, поэтому давайте опишем модель угроз и стратегии смягчения.
Предположим, у вас есть переход по URL, который может принести вам ощутимую стоимость (например, стоимость обработки), и вы хотите защитить его как от простой DoS-атаки, так и от приложений подражателя.
Используйте SSL, чтобы скрыть соединение от простого анализа. Используйте номер порта non-obviuos, последовательность перенаправления, обмен файлами cookie, чтобы немного усложнить соединение, прежде чем выполнять дорогостоящую часть запроса. Используйте некоторый секретный код, встроенный в ваше приложение, чтобы сервер знал, что он должен принять соединение.
Теперь кто-то не может выучить дорогостоящий URL-адрес, просто запустив анализатор пакетов или просмотрев строки, похожие на URL-адреса в вашем коде. Потенциальный злоумышленник должен декомпилировать ваше приложение.
Вы не можете реально защитить свой код от декомпиляции и / или запуска под отладчиком. В конечном итоге злоумышленник узнает секретный ключ и последовательность подключения.
Вы замечаете, что начинаете получать запросы румян на свой дорогостоящий URL-адрес: либо в форме атаки, либо в форме приложения-подражателя, которому для запуска необходимо получить доступ к вашей службе, либо, возможно, код эксплойта опубликован в открытом доступе. Вы не можете отличить мошеннический запрос от законного запроса.
Создайте бесплатное незначительное обновление вашего приложения с другим секретным ключом. Он должен попадать на другой дорогой URL, который обслуживает те же данные, что и скомпрометированный дорогой URL. В течение некоторого времени сделайте оба URL доступными.
Следите за тем, как пользователь переключается на обновленную версию. Задушить скомпрометированный дорогостоящий URL и в конечном итоге 404 его. Вы только что уменьшили брешь в системе безопасности, надеюсь, не потеряв слишком много. В исходную точку.
Отказ от ответственности: я не эксперт по безопасности.