Капча ведь от полноценного DDoS-а не поможет. Если будет настоящий DDoS с 100500+ запросами в секунду - просто замучаетесь генерировать/отправлять эту капчу, с нулевым результатом, клиенты так и будут её без остановки запрашивать...
Самое простое - в самих скриптах проверять валидность данных. Например аргумент zGzn1=Ar4lt1aB
у вас где-нибудь существует/используется? Нет? Ну и баньте запрашивающего сразу, не через iptables - так через отдельный файл, скидывать туда все блокированные IP-шки.
Можно сделать a-la Captcha, статичную страничку, на которую будут редиректиться все непроверенные запросы, и там JS-форма с кнопкой(ами), и надо щелкнуть определённую, и тогда будет нужный cookie/аргумент, и полный доступ к сайту... Но атакующие могут тоже адаптироваться, надо учитывать.
Да, CORS поможет, потому что браузер сначала HTTP OPTIONS запросом узнаёт разрешения https сайта - а уже потом ломится за содержимым. Но тут зависит от механизма, действительно ли атакующие браузеры делают запрос с какой-то злонамеренной страницы? Если бы страница была - она отображалась бы в Referer... А тут больше похоже на вредоносный браузерный плагин, а не на ссылку с какой-то страницы, и CORS просто не сработает.
По-моему так!