Franky div

Franky div
Рейтинг
168
Регистрация
15.08.2007
Должность
PR
Интересы
криптовалюты, инвестиции
20+ лет в SEO, аффилиатке и разработке. Делаю инструменты для вебмастеров: spintax.net (бесплатный опенсорсный спинтакс-движок и плагин для WordPress), generator.ink (генератор уникальных статических сайтов) и 301.st (управление доменами, редиректами и TDS на Cloudflare). Local-first, минимум зависимостей, данные остаются у тебя.
Принимается. Перемудрил — привычка работать с EU-трафиком, где GDPR и ePrivacy реально требуют блокировки до consent. В контексте РФ и 152-ФЗ действительно достаточно информирования + кнопки согласия, без блокировки загрузки скриптов. Метрику можно грузить сразу. Но код выше всё равно рабочий для тех, кто работает с EU-аудиторией или хочет перестраховаться (и не хочет грузить + 50Кб чужого кода).
Для чисто РФ-сайта — да, хватит простого баннера с одной кнопкой, как temniy и показал в начале.
@Nil2024 — справедливо, две кнопки для РФ только убивают статистику без юридической необходимости.
Просто проанализировал то, что предлагали в начале поста и чуть офигел, пардон братаны!
KraftWerk :
Полдня говорил с chatgpt и в большой переписке он написал базовый код продукта, который таки запустился.
Но вот диллема, огромная страница просто перестала реагировать в браузере, т.к. ее высота скроллинга ушла до небес.

Код написан наполовину, что-то работает, что-то нет. Есть ли вариант продолжить это дело? Может вообще есть получше решения кроме chatgpt 

Желательно конечно бесплатно 



melkozaur и Сергей правильно написали про архитектуру и планирование — без этого любой AI превращается в генератор костылей.

Добавлю из практики. Я делаю плагины для WordPress и прошёл путь от «кодить в чате» до рабочего пайплайна. Разница — как между диктовать код по телефону и работать в IDE.

Проблема автора: чат — это тупик по архитектуре. AI видит только текст в окне, а не ваш проект. Когда контекст переполняется — он начинает забывать что писал 20 сообщений назад и плодит дубли, конфликты, мёртвый код. Отсюда и «страница ушла до небес».

Что реально решает проблему:

1. Агент в терминале вместо чата. Claude Code / Codex / Cursor — не важно что, важен принцип: AI видит ваши файлы напрямую, а не через copy-paste. Он открывает файл → правит нужную функцию → запускает → видит ошибку → фиксит. Контекст не теряется, потому что контекст — это файлы на диске, а не история чата.

2. Планирование ДО кода. Сергей верно написал. Первый промпт должен быть не «напиши мне сайт», а «напиши план: какие файлы, какие модули, что от чего зависит». Получили план — проверили глазами — только потом кодим. Это экономит часы.

3. Маленькие файлы. Если весь код в одном файле на 3000 строк — любой AI сломается. Разбивайте: один файл = одна задача. AI работает с отдельным файлом, не трогая остальные.

Конкретный пример: говорю Claude Code «сделай скриншоты плагина и залей на wordpress.org» — он поднимает Docker с WordPress, открывает браузер, логинится в админку, проходит по 5 страницам, снимает скриншоты, сжимает, делает svn checkout, заливает, чистит за собой. Одна команда, без рук. В чате это потребовало бы 50 сообщений и всё равно бы сломалось.

По бесплатности: Claude Code — платный, но Antigravity (Сергей упомянул) с Opus внутри — рабочий вариант. DeepSeek в Cursor тоже бесплатен. Для старта хватит.

P.S. Общение с AI накладывает паттерны — привычка форматировать сообщения болдами и списками уже неизлечима, простите

Тут все дали баннеры, но никто не дал решение которое реально работает по закону. Mik Foxi верно написал — нельзя грузить Метрику/Аналитику до согласия. Вот минимальный рабочий вариант без зависимостей.

Суть: скрипты аналитики лежат в HTML, но с type="text/plain" вместо text/javascript — браузер их не выполняет. После клика «Принять» скрипт меняет type и выполняет их. Кнопка «Только необходимые» — закрывает баннер без активации аналитики.

1. Метрика — НЕ выполняется до согласия:

<script type="text/plain" data-consent="analytics"> (function(m,e,t,r,i,k,a){...})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(XXXXXXXX, "init", { clickmap: true, trackLinks: true, accurateTrackBounce: true }); </script>

2. Баннер + логика согласия:
<script>
(function() {
  if (localStorage.getItem('consent')) {
    activateScripts();
    return;
  }

  var bar = document.createElement('div');
  bar.innerHTML =
    'Сайт использует cookies и Яндекс.Метрику для аналитики. '
    + '<button id="c-ok">Принять</button> '
    + '<button id="c-no">Только необходимые</button>';

  Object.assign(bar.style, {
    position: 'fixed',
    bottom: '0',
    left: '0',
    right: '0',
    background: '#1a1a1a',
    color: '#fff',
    padding: '14px 20px',
    zIndex: '99999',
    fontSize: '14px'
  });

  document.body.appendChild(bar);

  document.getElementById('c-ok').onclick = function() {
    localStorage.setItem('consent', 'full');
    activateScripts();
    bar.remove();
  };

  document.getElementById('c-no').onclick = function() {
    localStorage.setItem('consent', 'essential');
    bar.remove();
  };

  function activateScripts() {
    if (localStorage.getItem('consent') !== 'full') return;
    document.querySelectorAll('script[data-consent]')
      .forEach(function(s) {
        var n = document.createElement('script');
        n.textContent = s.textContent;
        s.parentNode.replaceChild(n, s);
      });
  }
})();
</script> 
Что это даёт:
— Две кнопки: «Принять» и «Только необходимые» — как требует закон
— Метрика/Аналитика не грузится до явного согласия — type="text/plain" гарантирует
— Работает на любой CMS включая NetCat — один блок перед </body>
— Запоминает выбор в localStorage
— Ноль зависимостей, ~1.5 КБ

Все эти сервисы типа freecookie.net делают ровно то же самое, только грузят 50 КБ чужого JS и ставят свои куки. Иронично.

Сад серверных надругательств

«Сад серверных наслаждений», 2026, нейромасло.

Слева — рай: админы-монахи, аптайм 99.99%, золотой SSH-ключ на Древе Познания. В центре — наш тред. Справа — те, кто жал Accept All не глядя. Найди Mik Foxy (на горе Арарат) и получи справку о прохождении IQ-теста.

Vladimir #:
Только не понял в чем суть вашего тоже кликбейта))
Недавно тоже вполне успешно обновил 6 VPS и перенес сотни сайтов, тоже тему создавать?)) Просто хороший рабочий инструмент. Ничего экстраординарного
Просто узнал, что для моей бабушки это новость — что вместо того, чтобы слепиться в одну консольку, теперь можно бодро черкнуть пару строк в другую, но уже за деньги и с другим эффектом.
Спасибо за дискуссию.
@MIk Foxi — ты прав насчёт вайбкодинга, но не надо путать тёплое с мягким.
На Хабре недавно была отличная история: Даниэль Стенберг (cURL, 10 млрд устройств на его коде) закрыл баг-баунти, которую вёл 6 лет. Причина — 20% отчётов стали AI-сгенерированными, а валидных из них 5%. Выплатил $86k прежде чем понял, что кормит мусор. Вот это вайбкодинг — «скормил ИИ, отправил не глядя, жду денег».
То, что я описал — другое. Я знаю зачем мне DKIM, почему порт 25 закрыт, и проверяю каждый фикс перед деплоем.
Claude Code — это руки, не мозги. P.S. Как я ненавижу самописные форумы, где нельзся тегнуть собеседника :)
сеобелка :

Доброго времени суток, коллеги!

В России существует законодательство, регулирующее работу с cookie-файлами на сайтах. Куки-файлы считаются персональными данными и их обработка регулируется ФЗ-152 (законом о персональных данных).

В связи с этим у меня возник вопрос: Подпадают ли под этот закон информационные сайты, где нет регистрации пользователей? 

С одной стороны - не должны бы. Но! Персональными данными является в том числе электронная почта, которая фиксируется на сайте, когда пользователь оставляет комментарий. Также данные собирает Метрика - айпиадреса, например. Исходя из этого получается, что практически все сайты должны разместить поп-ап баннер о сборе cookie с кнопкой “ОК” и уведомить Роскомнадзор о деятельности по обработке персональных данных.

Кто что думает по этому поводу?

Тут в треде всё смешали в кучу — куки, персональные данные, метрику, РКН. Давайте разложим по полочкам, потому что куки кукам рознь.

Что такое кука технически? Это пара ключ=значение, которую сервер просит браузер сохранить. Всё. Сама по себе кука — это не персональные данные, точно так же как пустой конверт — это не письмо.

Какие куки НЕ являются персональными данными:

— Сессионные куки ( PHPSESSID , session_id ) — живут до закрытия браузера, нужны чтобы сайт работал. Без них не будет корзины, авторизации, CSRF-защиты. Это техническая необходимость, а не сбор данных.

— Функциональные куки — язык интерфейса, тема оформления, cookie_consent=yes (ирония — сама кука о согласии на куки). Никакой идентификации пользователя.

— First-party куки без привязки к личности — например, last_visited_page=/catalog . Нет ни email, ни IP, ни имени. Это не ПД ни по ФЗ-152, ни по GDPR.

Какие куки ЯВЛЯЮТСЯ (или могут являться) персональными данными:

— Куки трекинговых систем: _ym_uid (Метрика), _ga (Google Analytics) — уникальные идентификаторы, которые позволяют отслеживать пользователя между визитами и потенциально между сайтами. Вот это уже идентификатор, который в совокупности с другими данными может считаться ПД.

— Third-party куки рекламных сетей (РСЯ, Google Ads) — тут вообще прямая передача поведенческих данных третьим лицам.

— Куки, содержащие JWT-токен с email или user_id внутри — это буквально персональные данные в чистом виде. Кстати, многие даже не знают, что у них в куке лежит Base64-закодированный JSON с email пользователя — открывается декодером за секунду.

Практический вывод:

Если у вас статический сайт без метрики, без рекламы, без форм — у вас, скорее всего, вообще нет кук или есть только технические. Никакой регистрации в РКН не нужно.

Если у вас стоит Метрика — у вас _ym_uid , и формально вы оператор ПД. Но обратите внимание: сама Метрика в стандартной конфигурации не показывает IP пользователя. Яндекс его хеширует на своей стороне. Вы как оператор его не видите и не обрабатываете.

Про «удалить Google Analytics и reCAPTCHA» — это перебор. reCAPTCHA ставит куку _GRECAPTCHA , но она нужна для защиты формы, а не для идентификации. Удалять защиту от спама ради параноидального прочтения закона — так можно и HTTPS отключить, потому что сертификат хранит данные о соединении.

По поводу попапов «Мы используем куки» — в российском законодательстве, в отличие от GDPR, нет прямого требования показывать баннер. ФЗ-152 требует получить согласие на обработку ПД, но форма этого согласия не регламентирована. Попап — это калька с европейского ePrivacy Directive, которая в РФ юридической силы не имеет. Делают «на всякий случай».

Кстати, я публикую расширения для браузеров — инструменты, которые как раз работают с куками (просмотр, экспорт, декодирование JWT прямо в cookie). Так вот, Chrome Web Store и другие маркетплейсы при ревью смотрят именно на то, собирает ли расширение ПД. И первый вопрос — какие куки ты читаешь и зачем. Техническая кука для хранения настроек — ок, отслеживающий идентификатор — объясняй зачем. Подход ровно тот же, что и в законе: контекст решает всё.


Формальных требований к расположению нет — ни ГОСТов, ни предписаний РКН. Футер — это просто устоявшаяся конвенция, потому что пользователь ожидает найти там юридическую информацию.

Но вот вам практический кейс. Публикую расширения для браузеров в Chrome Web Store, Edge Add-ons, Firefox AMO, а также плагины на WordPress.org. Везде при публикации требуют указать URL на Privacy Policy. И знаете что? Им всё равно где она лежит. Принимают ссылку на страницу сайта, на отдельный .md файл в GitHub-репозитории, хоть на Google Doc — лишь бы по ссылке был текст политики. У меня на нескольких проектах privacy policy — это буквально файл PRIVACY.md в репо на GitHub. Chrome Web Store пропускает, ревью проходит, вопросов ноль.

Так что для российского законодательства — да, футер + попап при первом визите (как коллега выше написал) это разумный минимум. А по факту даже крупные платформы не проверяют вложенность — проверяют наличие текста по ссылке.

Genius Ideaing #:
да что вы говорите... у вас видимо веб-сайт приносит кучу бабла, если вас устраивают  платные аналоги КФ в РФ ... 
Если просто собрать статику на VK Cloud, то это 100 рублей в мес за CDN и "хостинг". Дешевле VPS'ки - факт. Т.е. понятно, что инфраструктуру никто не будет переносить, но если нужно просто повесить UI, то вполне себе решение.
qvaro #:

Подскажите, пожалуйста, как через .htaccess сделать редирект.

Яндекс стал дописывать в урл сайтов, когда переходишь в поиске, например ?ysclid=lx34aaez17299711936

У меня стоит редирект с одной страницы, на другую, но если дописать, то 301 уже не срабатывает. И получается, если перейти из поиска, то открывается старая страница с ?ysclid=lx34aaez17299711936, если убрать это, то 301 на новую происходит.

Сайт на wp, пользуюсь плагином Redirection, сейчас хочу попробовать через htaccess сделать.

Проблема не в .htaccess — RewriteRule по умолчанию игнорирует query string, так что ?ysclid=... не должен мешать. Правило вида:

  RewriteRule ^old-page/?$ /new-page/ [R=301,L]

  сработает и с ?ysclid=..., и без. Query string просто пробросится.

  Скорее всего проблема в настройке плагина Redirection — проверьте, что тип совпадения стоит «Только URL» (без query-параметров), а не «Exact URL». Redirection умеет работать с query string, но по умолчанию
  может матчить точно.

  Если хотите вообще убрать ?ysclid со всех страниц (чтобы не плодить дубли), добавьте в .htaccess перед # BEGIN WordPress:

  RewriteCond %{QUERY_STRING} ^ysclid= [NC]
  RewriteRule ^(.*)$ /$1? [R=301,L]

  Финальный ? обрезает query string. Это решит проблему и для редиректов, и для дублей в индексе.
--
P.S. Посмотрел последние пару страниц... можете обращаться по поводу подобного,  мне не сложно.
Пишите в личку проблемы с редиректами - пофиксим... особенно, если это WP - там достаточно просто все.

Всего: 356