Какие существуют способы защиты от атак на сервис, использующий смс подтверждение?
Усложнить отправку формы простым curl-om.
Используйте сессии, загружайте в hidden переменные значения ajax-ом, проверяйте, что пользователь загрузил не только html-файл формы, но и какое-то изображение, что он выполняет скрипты и тд. Понятно что от эмуляции браузера это не спасет, но жизнь злоумышленникам усложнит.
Кстати, можно еще отслеживать перемещения мыши, хотя бы в пределах формы, mouseover и mouseout на ее элементах, прокручивание страница, ввод текста в элементы формы (а не программное изменение value как в phantomjs) и на основании всего этого рассчитывать вероятность бота. При невысокой активности этим всем можно пренебречь, но в моменты атаки учитывать для выявления ботов.
Составь блоксхему процесса и посмотри на каких участках стоит применить лимиты и капчи
Установи во всех точках логирование
Мониторь всплески и аномалии
Установи лимиты для погашения всплесков
Повтори все с начала