// Секретный ключ для подписи куки (поменяйте на свой) const SECRET_KEY = "nothingflare-super-secret-key"; export default { async fetch(request, env, ctx) { const url = new URL(request.url); const cookieHeader = request.headers.get("Cookie") || ""; // 1. Если пользователь шлет проверочный токен if (url.searchParams.has("nf_verify")) { const token = url.searchParams.get("nf_verify"); // Устанавливаем куку безопасности на 1 день и редиректим обратно return new Response("OK", { status: 302, headers: { "Location": url.origin + url.pathname, "Set-Cookie": `nf_clearance=${token}; Path=/; Max-Age=86400; Secure; SameSite=Lax` } }); } // 2. Проверяем, есть ли уже валидная кука if (cookieHeader.includes(`nf_clearance=${SECRET_KEY}`)) { // Пользователь проверен — пробрасываем запрос на ваш реальный сайт/хостинг return fetch(request); } // 3. Если куки нет — отдаем кастомную капчу в стиле NothingFlare return new Response(getHtmlPage(url.origin + url.pathname), { headers: { "Content-Type": "text/html;charset=UTF-8" } }); } }; // Функция, возвращающая HTML-страницу (дизайн Mitelis + стиль NothingFlare) function getHtmlPage(targetUrl) { return ` Защита NothingFlare | Проверка...
powered by

Пожалуйста, подождите несколько секунд..

Выполняется проверка безопасности вашего соединения.

`; } setTimeout(() => { window.location.href = "/main.html"; }, 3500);