[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content-post-152-fz-dlya-malenkogo-sayta":3},{"post":4,"related":258,"status":220},{"id":5,"title":6,"slug":7,"excerpt":8,"content":9,"cover_alt":219,"cover_position":220,"reading_time":221,"seo":222,"robots_index":231,"seo_title":223,"seo_description":224,"date_published":232,"date_modified":220,"source_lead":220,"rubrics":233,"blocks":241,"cover":255},"de032c5c-0df8-45d9-9d9e-7405da29fc47","152-ФЗ для маленького сайта: что реально нужно сделать","152-fz-dlya-malenkogo-sayta","Сайт с одной формой \"оставьте телефон\" - это уже обработка персональных данных. Разбираю минимальный рабочий набор для маленького сайта: отдельное согласие, доказательство того, что человек его дал, аналитика после согласия, внутренние акты и вторая форма уведомления в РКН, о которой почти все забывают.",{"type":10,"content":11},"doc",[12,18,22,26,33,37,41,46,50,54,58,63,67,72,76,80,84,89,93,97,101,106,110,145,150,154,164,168,173,186,190,195,201,205,209],{"type":13,"content":14},"paragraph",[15],{"type":16,"text":17},"text","Я недавно приводил в порядок собственный сайт: сверял, что он реально делает с данными, с тем, чего требует закон. Разрыв нашёлся. Рассказываю, из чего состоит минимальный рабочий набор, - для владельцев сайта-визитки с формой, у которых нет отдела комплаенса.",{"type":13,"content":19},[20],{"type":16,"text":21},"Сайт с одной формой \"оставьте телефон, мы перезвоним\" - это уже обработка персональных данных. Со всем, что из этого следует: политикой, согласием, обязанностями и уведомлением в Роскомнадзор. Штрафы за нарушения в последние годы выросли до величин, которые для малого бизнеса уже чувствительны.",{"type":13,"content":23},[24],{"type":16,"text":25},"Оговорка: я инженер, а не юрист. Ниже - инженерная часть работы. Формулировки документов под конкретный бизнес стоит показать юристу, это недорого.",{"type":27,"attrs":28,"content":30},"heading",{"level":29},2,[31],{"type":16,"text":32},"Согласие - отдельный документ",{"type":13,"content":34},[35],{"type":16,"text":36},"Самая частая ошибка: чекбокс \"согласен с политикой конфиденциальности\". Политика - информационный документ о том, как вы обрабатываете данные. Согласие - волеизъявление человека, документ другого жанра, и он должен быть отдельным: у меня теперь политика по своему адресу и согласие по своему, а чекбокс ссылается на согласие.",{"type":13,"content":38},[39],{"type":16,"text":40},"Второе: согласие на обработку заявки и согласие на рассылку - разные вещи, и складывать их в одну галочку нельзя. Первая обязательна для отправки формы, вторая - отдельная и необязательная.",{"type":27,"attrs":42,"content":43},{"level":29},[44],{"type":16,"text":45},"Галочка должна стоять там, где начинается сбор",{"type":13,"content":47},[48],{"type":16,"text":49},"У меня на сайте многошаговая форма: на первом шаге человек описывает задачу, на втором оставляет контакт. Чекбокс изначально стоял на втором шаге - рядом с телефоном, как у всех.",{"type":13,"content":51},[52],{"type":16,"text":53},"Это было неправильно. Текст задачи - тоже данные о человеке, и они уходят на сервер уже на первом шаге, до всякого телефона. Галочка переехала на первый шаг: без неё форма не отправляется вообще - ни задача, ни контакт.",{"type":13,"content":55},[56],{"type":16,"text":57},"Общее правило: согласие берётся до первой передачи данных, а не перед последней.",{"type":27,"attrs":59,"content":60},{"level":29},[61],{"type":16,"text":62},"Проверять согласие должен сервер",{"type":13,"content":64},[65],{"type":16,"text":66},"Галочка на странице - это то, что видит человек. Отправить данные мимо страницы, вообще её не открывая, может кто угодно: и тогда в базе окажется контакт без согласия, а вы об этом не узнаете. Поэтому то же самое проверяет сервер: нет отметки о согласии - заявка не принимается. От этого зависит, что вы сможете сказать про свою базу, когда спросят.",{"type":27,"attrs":68,"content":69},{"level":29},[70],{"type":16,"text":71},"Факт согласия надо зафиксировать",{"type":13,"content":73},[74],{"type":16,"text":75},"Согласие, которое нельзя доказать, юридически бесполезно: база у вас есть, а подтвердить, что люди разрешили себя в неё записать, нечем. Значит, вместе с заявкой сохраняется адрес в сети, с которого она пришла, браузер и, главное, версия документа, с которым человек согласился.",{"type":13,"content":77},[78],{"type":16,"text":79},"Последнее часто забывают. Текст согласия со временем меняется, а доказывать придётся не то, что человек согласился вообще, а с чем именно он согласился в тот день.",{"type":13,"content":81},[82],{"type":16,"text":83},"Заодно я убрал автоматическую простановку отметки о согласии на рассылку при любом контакте с человеком: раньше она ставилась всегда, просто потому, что так было проще написать.",{"type":27,"attrs":85,"content":86},{"level":29},[87],{"type":16,"text":88},"Аналитика - только после согласия",{"type":13,"content":90},[91],{"type":16,"text":92},"Счётчик посещаемости грузится до того, как человек что-то нажал, и начинает собирать данные о нём сразу. Решается это честной плашкой: счётчик не запускается, пока согласия нет.",{"type":13,"content":94},[95],{"type":16,"text":96},"Ключевая деталь - в плашке должна быть кнопка \"Отклонить\". Плашка с единственной кнопкой \"Принять\" согласием не является: выбора нет.",{"type":13,"content":98},[99],{"type":16,"text":100},"Сам сервис аналитики при этом надо честно назвать в политике обработчиком по поручению - он обрабатывает данные ваших посетителей по вашему заданию.",{"type":27,"attrs":102,"content":103},{"level":29},[104],{"type":16,"text":105},"Документы, которые никто не видит, но которые должны быть",{"type":13,"content":107},[108],{"type":16,"text":109},"Кроме публичных политики и согласия, есть внутренние документы. Их не публикуют, они лежат в папке и предъявляются при проверке:",{"type":111,"content":112},"bulletList",[113,125,135],{"type":114,"content":115},"listItem",[116],{"type":13,"content":117},[118,123],{"type":16,"marks":119,"text":122},[120],{"type":121},"bold","Акт оценки вреда и акт определения уровня защищённости.",{"type":16,"text":124}," Для сайта-визитки уровень обычно четвёртый, самый мягкий, но зафиксировать это надо письменно, с перечнем лиц, допущенных к данным. Если вы работаете один - в перечне будет одна фамилия, и это нормально.",{"type":114,"content":126},[127],{"type":13,"content":128},[129,133],{"type":16,"marks":130,"text":132},[131],{"type":121},"Памятка на случай утечки.",{"type":16,"text":134}," Закон даёт 24 часа на уведомление регулятора о факте инцидента и 72 часа на результаты внутреннего расследования. В момент инцидента искать, куда и что писать, поздно. Памятка занимает страницу.",{"type":114,"content":136},[137],{"type":13,"content":138},[139,143],{"type":16,"marks":140,"text":142},[141],{"type":121},"Регламент чистки базы.",{"type":16,"text":144}," Данные нельзя хранить вечно: истёк срок - удаляются, с составлением акта. Даже если реальная чистка у вас случится через три года, регламент должен быть написан сейчас.",{"type":27,"attrs":146,"content":147},{"level":29},[148],{"type":16,"text":149},"Уведомление в Роскомнадзор - и вторая форма, о которой забывают",{"type":13,"content":151},[152],{"type":16,"text":153},"Уведомление о намерении обрабатывать персональные данные подаётся через портал регулятора и требует подтверждённой учётной записи, поэтому подаёт его лично владелец бизнеса: подрядчик может только подготовить текст.",{"type":13,"content":155},[156,158,162],{"type":16,"text":157},"А вот деталь, на которой я сам сначала ошибся. Если данные передаются за границу - а это касается всех, кто использует зарубежные сервисы, - трансграничная передача требует ",{"type":16,"marks":159,"text":161},[160],{"type":121},"отдельного",{"type":16,"text":163}," уведомления по своей форме. Соответствующий раздел в обычном уведомлении его не заменяет. Подавать надо до начала передачи, а в страны без адекватной защиты - только после истечения срока рассмотрения.",{"type":13,"content":165},[166],{"type":16,"text":167},"Здесь же полезно честно ответить себе на вопрос, что именно уезжает наружу. У меня, например, текст задачи уходит в языковую модель, а контактные данные - нет: это разные ответы, и в уведомлении они выглядят по-разному.",{"type":27,"attrs":169,"content":170},{"level":29},[171],{"type":16,"text":172},"Побочная находка",{"type":13,"content":174},[175,177,184],{"type":16,"text":176},"Пока я разбирался, что вообще происходит с данными, нашлась ",{"type":16,"marks":178,"text":183},[179],{"type":180,"attrs":181},"link",{"href":182},"https:\u002F\u002Fagmazin.ru\u002Fblog\u002Futechka-bazy-cherez-bekapy","настоящая утечка",{"type":16,"text":185}," - и совсем не там, где я её искал. Забытый сценарий автоматизации, оставшийся от закрытого проекта, продолжал работать и отдавал наружу тестовую запись с персональными данными. Формально он был выключен, фактически - отвечал.",{"type":13,"content":187},[188],{"type":16,"text":189},"Это лучший аргумент в пользу такой ревизии. Начинать стоит с инвентаризации, а документы писать после: какие данные вы собираете, где они лежат и кому уезжают. Соответствие закону - приятный побочный эффект; главное - вы наконец узнаёте, что ваша система на самом деле делает с чужими данными.",{"type":27,"attrs":191,"content":192},{"level":29},[193],{"type":16,"text":194},"Что это даёт вам в деньгах",{"type":196,"attrs":197},"relation-block",{"id":198,"junction":199,"collection":200},"5fabd5d7-b32b-456f-a534-9c4dc8cd7baa","posts_blocks","block_stats",{"type":13,"content":202},[203],{"type":16,"text":204},"Считайте на своих цифрах. Заявка в B2B стоит 3 000 - 15 000 рублей: база из 100 контактов - это 300 000 - 1 500 000 рублей уже потраченного бюджета, и без доказуемого согласия пользоваться ей нельзя. Дальше риск: закон даёт 24 часа на уведомление об утечке и 72 часа на отчёт о расследовании, а день руководителя стоит 7 000 - 10 000 рублей. Документы и памятка пишутся один раз.",{"type":13,"content":206},[207],{"type":16,"text":208},"Персональные данные - не единственное, за что к сайту прилетает претензия: вторая частая история - чужие фотографии. Показываю, как мы закрыли досудебную претензию, заменив на живом сайте 211 картинок.",{"type":13,"content":210},[211,213],{"type":16,"text":212},"Читать дальше: ",{"type":16,"marks":214,"text":218},[215],{"type":180,"attrs":216},{"href":217},"https:\u002F\u002Fagmazin.ru\u002Fblog\u002Fpretenziya-za-fotografiyu","Претензия за фотографию: как мы заменили 211 картинок на живом сайте","Светящаяся галочка над ровной стопкой листов",null,4,{"title":223,"meta_description":224,"focus_keyphrase":225,"og_image":220,"no_index":226,"no_follow":226,"sitemap":227,"additional_fields":230},"152-ФЗ для сайта с формой заявки: минимальный рабочий набор","Что нужно сделать сайту с одной формой обратной связи, чтобы соответствовать 152-ФЗ: отдельное согласие, фиксация факта, метрика после согласия, уведомление РКН и трансграничная передача.","",false,{"change_frequency":228,"priority":229},"monthly","0.6",{},true,"2026-08-27T17:28:48.000Z",[234,238],{"sort":235,"tags_id":236},1,{"name":237},"Разборы задач",{"sort":29,"tags_id":239},{"name":240},"Безопасность",[242],{"id":198,"sort":220,"collection":200,"item":243},{"items":244,"columns":254},[245,248,251],{"lead":246,"text":247},"300 000 - 1 500 000 рублей","столько стоила база из 100 заявок; без доказуемого согласия писать по ней нельзя",{"lead":249,"text":250},"7 000 - 10 000 рублей","день руководителя, а без готовой памятки на разбор инцидента уходит именно он",{"lead":252,"text":253},"24 и 72 часа","срок уведомить регулятора об утечке и отчитаться о расследовании",3,{"id":256,"modified_on":257},"5735faa8-229b-403a-8d49-f32e2eb3592b","2026-08-27T18:13:00.511Z",[259,468,661],{"id":260,"title":218,"slug":261,"excerpt":262,"content":263,"cover_alt":435,"cover_position":220,"reading_time":221,"seo":436,"robots_index":231,"seo_title":437,"seo_description":438,"date_published":441,"date_modified":220,"source_lead":220,"rubrics":442,"blocks":447,"cover":465},"5961ca87-2b6f-4c60-9d4d-3677f34b294f","pretenziya-za-fotografiyu","Досудебная претензия на 60 000 рублей за одну фотографию, которую в 2018 году поставил подрядчик. Показываю, что мы сделали вместо выплаты: нашли все чужие картинки на сайте и заменили их так, что вёрстка и адреса в поиске остались прежними.",{"type":10,"content":264},[265,269,273,278,282,286,290,295,299,303,307,311,316,320,340,344,349,353,361,369,377,381,386,390,394,399,403,407,411,416,420,424,427,431],{"type":13,"content":266},[267],{"type":16,"text":268},"Клиенту пришла досудебная претензия: на сайте используется фотография, права на которую принадлежат не ему. Требование - 60 000 рублей за одно изображение на одной странице, со скидкой до 35 000, если заплатить в течение пяти рабочих дней. Фотография попала на сайт в 2018 году вместе с материалами подрядчика, который давно не работает с компанией, и это, к сожалению, не аргумент: отвечает владелец сайта.",{"type":13,"content":270},[271],{"type":16,"text":272},"История типовая, и заканчивается она обычно одинаково: платят или судятся. Иногда в панике сносят полсайта вместе с вёрсткой и поисковым трафиком. Мы сделали по-другому.",{"type":27,"attrs":274,"content":275},{"level":29},[276],{"type":16,"text":277},"Почему \"просто удалить\" не работает",{"type":13,"content":279},[280],{"type":16,"text":281},"Первая реакция собственника - убрать картинку и забыть. Она понятна, но закрывает только часть вопроса.",{"type":13,"content":283},[284],{"type":16,"text":285},"Во-первых, претензия уже предъявлена, и удаление не отменяет прошлого использования - это разговор для юриста, и его надо вести отдельно. Во-вторых, снятая картинка оставляет дыру: у неё есть размеры, и вёрстка рассчитана на них. В-третьих, и это главное - если одна чужая фотография попала на сайт случайно, там почти наверняка есть и другие. Правообладатели работают системно: находят одно нарушение и проверяют весь домен.",{"type":13,"content":287},[288],{"type":16,"text":289},"Поэтому задача звучит шире: убрать с сайта весь чужой визуальный материал, ничего при этом не сломав.",{"type":27,"attrs":291,"content":292},{"level":29},[293],{"type":16,"text":294},"Почему нельзя просто взять новые фотографии",{"type":13,"content":296},[297],{"type":16,"text":298},"Два очевидных варианта отпадают сразу.",{"type":13,"content":300},[301],{"type":16,"text":302},"Скачать новые фотографии из интернета - это ровно то, с чего началась история. Купить сток - вариант рабочий, но дорогой на трёх сотнях картинок, и он всё равно требует подобрать снимки той же композиции, иначе поедет вёрстка.",{"type":13,"content":304},[305],{"type":16,"text":306},"Отдельно стоит сказать про соблазн сделать нейросетью попиксельную копию исходного кадра. Так делать нельзя. Узнаваемая копия остаётся переработкой чужого произведения - это прямо описано в статье 1270 ГК РФ - и требует согласия правообладателя ровно так же, как оригинал. Технически вы вроде бы ничего не скачивали, юридически ничего не изменилось.",{"type":13,"content":308},[309],{"type":16,"text":310},"Рабочая формулировка оказалась другой: тот же кадр, снятый заново. Не копия и не новая картинка на ту же тему, а самостоятельный снимок той же сцены - как если бы на то же место приехал другой фотограф.",{"type":27,"attrs":312,"content":313},{"level":29},[314],{"type":16,"text":315},"Сначала инвентаризация, потом всё остальное",{"type":13,"content":317},[318],{"type":16,"text":319},"Найти все картинки сайта сложнее, чем кажется. Одного источника не хватает, их нужно три:",{"type":111,"content":321},[322,328,334],{"type":114,"content":323},[324],{"type":13,"content":325},[326],{"type":16,"text":327},"обход всех страниц сайта - то, что реально видит посетитель, включая фоновые картинки, которых нет в тексте страницы;",{"type":114,"content":329},[330],{"type":13,"content":331},[332],{"type":16,"text":333},"база данных - тексты материалов, настройки модулей, меню, медиатека;",{"type":114,"content":335},[336],{"type":13,"content":337},[338],{"type":16,"text":339},"файлы на диске - поиск по всем папкам с изображениями, включая шаблон и слайдеры.",{"type":13,"content":341},[342],{"type":16,"text":343},"Пересечение этих трёх списков дало карту: 359 картинок, у каждой известно, где она встречается, живая она или осталась только в базе, и есть ли у неё дубликаты. Отдельной строкой - 1434 файла, которых нет ни в одном источнике: старьё, забытое прежними подрядчиками. Их мы не трогали вообще: удалять то, о чём ничего не знаешь, я не стал.",{"type":27,"attrs":345,"content":346},{"level":29},[347],{"type":16,"text":348},"Разметка: не всё подряд",{"type":13,"content":350},[351],{"type":16,"text":352},"Дальше начинается работа глазами. Я смотрел все картинки контактными листами по 24 штуки и раскладывал на три стопки.",{"type":13,"content":354},[355,359],{"type":16,"marks":356,"text":358},[357],{"type":121},"Перегенерить",{"type":16,"text":360}," - стоковые постановки: техника на идеальном газоне, человек в каске на фоне заката, руки с чертежом, каталожные снимки приборов, чужие промзоны. Это и есть основной источник риска.",{"type":13,"content":362},[363,367],{"type":16,"marks":364,"text":366},[365],{"type":121},"Удалить",{"type":16,"text":368}," - демо-контент шаблона, который никто не убрал при запуске: чашки кофе, гамаки, картинки с подписью Sample Image, логотипы платёжных систем, которыми компания не пользуется.",{"type":13,"content":370},[371,375],{"type":16,"marks":372,"text":374},[373],{"type":121},"Оставить",{"type":16,"text":376}," - собственная полевая съёмка, чертежи, обложки документации, сотрудники, своё оборудование.",{"type":13,"content":378},[379],{"type":16,"text":380},"Здесь была ловушка, в которую я попал на первом заходе. Портреты сотрудников, снятые в студии, выглядят как чистый сток - ровный свет, белый фон, дежурная улыбка - и уехали в стопку на замену. Это свои люди, снятые за свои деньги, менять их нельзя. Вывод: спорные кадры я показываю владельцу.",{"type":27,"attrs":382,"content":383},{"level":29},[384],{"type":16,"text":385},"Где всё ломается",{"type":13,"content":387},[388],{"type":16,"text":389},"Самое хрупкое место - как именно объяснить задачу нейросети. Первая версия звучала разумно: \"сними эту сцену заново, другой ракурс, другой свет\" плюс описание сюжета из подписи к картинке. Результат был отличный и совершенно негодный. Нейросеть решила, что подпись - это заказ на новый снимок, и начала дорисовывать: на пустом галечном берегу появились пятеро геодезистов и грузовик, а в другом кадре берег превратился в поле с нефтяными качалками.",{"type":13,"content":391},[392],{"type":16,"text":393},"Рабочая формулировка получилась занудной и подробной: сохранить композицию, ракурс, границы кадра, все объекты и их положение, количество людей и техники, позы, цвета, свет и время года; ничего не добавлять и не убирать; отличия допускаются только в мелкой фактуре. Зато на выходе тот же кадр, и вёрстка стоит как стояла.",{"type":27,"attrs":395,"content":396},{"level":29},[397],{"type":16,"text":398},"Миниатюры, о которых все забывают",{"type":13,"content":400},[401],{"type":16,"text":402},"Заменить исходный файл мало. Движок сайта хранит нарезанные копии каждой картинки под разные места - превью в списке, картинка в шапке, миниатюра в галерее. Если их не пересобрать, посетитель ещё месяцами будет видеть старое изображение в анонсах, а сайт - продолжать нарушение.",{"type":13,"content":404},[405],{"type":16,"text":406},"На этом сайте таких копий оказалось 1123 штуки. Все пересобраны из новых оригиналов.",{"type":13,"content":408},[409],{"type":16,"text":410},"Ещё одно правило, которое экономит недели: имя файла не меняется. Новая картинка ложится ровно на место старой, поэтому тексты и ссылки никто не переделывает руками, а адреса картинок в поиске остаются прежними.",{"type":27,"attrs":412,"content":413},{"level":29},[414],{"type":16,"text":415},"Итог",{"type":13,"content":417},[418],{"type":16,"text":419},"Владелец получил документ, где по каждой замене стоят рядом старая и новая картинка - и как отчёт, и как аргумент в переговорах с правообладателем: нарушение прекращено добровольно и по всему сайту сразу. Проверены все 418 страниц и вся библиотека изображений: 359 картинок в аудите, 211 заменено, 7 удалено, 1123 миниатюры пересобраны. База не тронута, вёрстка не поехала, полный бэкап базы и папок с картинками сделан до первой правки.",{"type":27,"attrs":421,"content":422},{"level":29},[423],{"type":16,"text":194},{"type":196,"attrs":425},{"id":426,"junction":199,"collection":200},"ba4f61c6-4324-44b5-8eff-da86d34c661b",{"type":13,"content":428},[429],{"type":16,"text":430},"Посчитайте на своих цифрах. Одно письмо - 35 000 рублей, если платить в пятидневное окно, и 60 000, если не успели. На сайте из примера 211 снимков группы риска, а домен правообладатель проверяет целиком: даже десять писем из этого запаса - 350 000 рублей. Плюс ваши дни на разбор, при цене дня руководителя по рынку 7 000 - 10 000 рублей. Сплошная замена закрывает весь массив за один заход.",{"type":196,"attrs":432},{"id":433,"junction":199,"collection":434},"7bd244db-3f3d-48bc-bf33-52046c38ffb9","block_cta","Сетка одинаковых кадров на тёмной стене, несколько из них подсвечены",{"title":437,"meta_description":438,"focus_keyphrase":225,"og_image":220,"no_index":226,"no_follow":226,"sitemap":439,"additional_fields":440},"Досудебная претензия за фото на сайте: как заменить картинки без потерь","Кейс: претензия правообладателя за фотографию на корпоративном сайте. Как мы нашли 359 картинок, заменили 211 нейросетевыми кадр в кадр и пересобрали 1123 миниатюры, не тронув вёрстку и SEO.",{"change_frequency":228,"priority":229},{},"2026-08-27T18:10:09.000Z",[443,445],{"sort":235,"tags_id":444},{"name":237},{"sort":29,"tags_id":446},{"name":240},[448,459],{"id":426,"sort":220,"collection":200,"item":449},{"items":450,"columns":254},[451,454,457],{"lead":452,"text":453},"60 000 рублей","требование за одну фотографию на одной странице; 35 000, если заплатить за пять дней",{"lead":455,"text":456},"211 картинок","столько снимков группы риска нашлось на одном сайте; каждый - повод для письма",{"lead":249,"text":458},"день руководителя по рынку - столько стоит разбирать сайт и претензию самому",{"id":433,"sort":220,"collection":434,"item":460},{"cta_variant":461,"heading":462,"body":463,"button_label":464,"url":220,"glow":231},"estimator","Похожая задача?","Если картинки на ваш сайт ставили подрядчики, вы не знаете, сколько там чужих кадров, пока не проверен весь домен. Опишите сайт - посчитаю объём замены и сроки.","Оценить задачу",{"id":466,"modified_on":467},"acbf6596-6ae4-44e5-b6c6-54c5326c8011","2026-08-27T18:12:21.832Z",{"id":469,"title":470,"slug":471,"excerpt":472,"content":473,"cover_alt":629,"cover_position":220,"reading_time":254,"seo":630,"robots_index":231,"seo_title":631,"seo_description":632,"date_published":635,"date_modified":220,"source_lead":220,"rubrics":636,"blocks":641,"cover":658},"75251e39-6088-48b3-b70b-62a33464f173","База лежала в открытом доступе по ошибке SEO-специалиста и GPT","utechka-bazy-cherez-bekapy","Полные копии базы с заказами и паролями клиентов лежали в открытой части сайта пять месяцев и скачивались по прямой ссылке. Признаков взлома не было ни одного - и это самое интересное в этой истории. Разбираю, как утекают базы через рабочий мусор и как проверить свой сайт.",{"type":10,"content":474},[475,479,483,488,492,496,500,516,524,532,536,541,545,549,553,558,562,566,571,575,579,583,588,592,596,601,615,619,622,626],{"type":13,"content":476},[477],{"type":16,"text":478},"Собственник спросил осторожно: \"У нас же не могли слить базу?\" Повод был - месяцем раньше на одном из его сайтов мы уже находили открытый архив. Я проверил все сайты, до которых у него есть отношение. Результат: на соседнем сайте лежали две полные копии базы данных, доступные любому человеку в интернете, - самой старой было пять месяцев.",{"type":13,"content":480},[481],{"type":16,"text":482},"Признаков взлома не было ни одного: ни подозрительных файлов, ни чужого кода. Данные просто лежали так, что взламывать ничего не требовалось.",{"type":27,"attrs":484,"content":485},{"level":29},[486],{"type":16,"text":487},"Как база оказывается в открытом доступе",{"type":13,"content":489},[490],{"type":16,"text":491},"В голове у большинства владельцев сайтов утечка выглядит как хакер в толстовке. На практике типовой сценарий скучнее и обиднее: база утекает через рабочий мусор, который оставили свои же.",{"type":13,"content":493},[494],{"type":16,"text":495},"Плагин резервного копирования складывает копии базы в открытую часть сайта и хранит их месяцами. Подрядчик перенёс сайт и забыл убрать архив с установщиком. Кто-то поставил панель управления базой, чтобы разово посмотреть таблицу, и она осталась. Каждый шаг по отдельности выглядит безобидно, а вместе это готовый способ скачать всё содержимое компании, зная только имя файла.",{"type":13,"content":497},[498],{"type":16,"text":499},"Именно так выглядели три находки на этом аудите.",{"type":13,"content":501},[502,506,508,514],{"type":16,"marks":503,"text":505},[504],{"type":121},"Копии базы в открытой части сайта.",{"type":16,"text":507}," Две штуки, от марта и апреля, плюс архивы самого сайта на 162 мегабайта. Внутри - заказы клиентов ",{"type":16,"marks":509,"text":513},[510],{"type":180,"attrs":511},{"href":512},"https:\u002F\u002Fagmazin.ru\u002Fblog\u002F152-fz-dlya-malenkogo-sayta","с персональными данными",{"type":16,"text":515},", пароли всех пользователей сайта (зашифрованные, но подбираются офлайн и не спеша), ключи доступа интеграций. Рядом лежала копия служебного файла с логином и паролем от базы.",{"type":13,"content":517},[518,522],{"type":16,"marks":519,"text":521},[520],{"type":121},"Архив сайта на 876 мегабайт",{"type":16,"text":523}," на копии другого сайта - со всеми файлами и базой внутри. Такой архив разворачивается в один клик где угодно: у того, кто его скачал, появляется полная рабочая копия чужого бизнеса.",{"type":13,"content":525},[526,530],{"type":16,"marks":527,"text":529},[528],{"type":121},"Открытая панель управления базой",{"type":16,"text":531}," версии 2013 года на боевом сайте. Пароль она спрашивает, но для такой старой версии публично известны способы обхода, и это удобная точка для перебора.",{"type":13,"content":533},[534],{"type":16,"text":535},"Отдельно неприятная деталь: формально защита стояла. В папке с копиями лежал файл-запрет на скачивание - но конкретный хостинг для таких путей его игнорировал. По конфигу всё выглядело закрытым, по факту файлы отдавались наружу.",{"type":27,"attrs":537,"content":538},{"level":29},[539],{"type":16,"text":540},"Диск - это не то же самое, что интернет",{"type":13,"content":542},[543],{"type":16,"text":544},"Главная методическая ошибка в таких проверках - искать файлы на сервере и по факту находки объявлять утечку. Файл может лежать на диске и не отдаваться наружу, а может лежать в неожиданном месте и прекрасно скачиваться.",{"type":13,"content":546},[547],{"type":16,"text":548},"Поэтому порядок такой: сначала смотрю, что лежит на диске - архивы, копии базы, файлы с расширениями bak, old, save, остатки установщиков. Потом каждую находку пробую скачать из интернета, как это сделал бы посторонний: скачалось - значит утечка, не скачалось - значит просто мусор на сервере. И отдельно запрашиваю снаружи ходовые адреса вслепую, даже если на диске чисто: доступа к диску может не быть вовсе, а файл при этом отдаётся.",{"type":13,"content":550},[551],{"type":16,"text":552},"Кроме самих файлов проверяю то, о чём обычно забывают. Пускает ли сама база подключения из интернета напрямую - на этом хостинге пускала, причём с любого адреса: тому, кто добыл пароль, сайт уже не нужен, он заходит в базу мимо сайта. Не оставил ли кто-то на сайте чужой скрипт для доступа к файлам. И что лежит на соседних сайтах того же аккаунта.",{"type":27,"attrs":554,"content":555},{"level":29},[556],{"type":16,"text":557},"Сколько это было открыто и что теперь доказывать",{"type":13,"content":559},[560],{"type":16,"text":561},"Копии базы лежали с начала марта - пять месяцев. Логи доступа за такой срок хостинг не хранит, поэтому доказать, скачивал кто-то эти файлы или нет, невозможно в принципе.",{"type":13,"content":563},[564],{"type":16,"text":565},"Это важный практический вывод, а не формальность. Если в базе есть персональные данные клиентов, невозможность доказать отсутствие утечки означает, что исходить придётся из худшего: считать данные скомпрометированными, менять ключи и пароли, оценивать обязанности по 152-ФЗ. Разница между \"у нас была дыра\" и \"у нас была утечка\" стоит дорого, и определяется она наличием логов, которых обычно нет.",{"type":27,"attrs":567,"content":568},{"level":29},[569],{"type":16,"text":570},"Правило, которое я соблюдаю жёстко: аудит ничего не меняет",{"type":13,"content":572},[573],{"type":16,"text":574},"Ни одного удаления, переноса или изменения прав на сайте клиента без его отдельного согласия. Даже когда дыра очевидна, даже когда правка обратима.",{"type":13,"content":576},[577],{"type":16,"text":578},"Причина простая. На сайте работает не только тот, кто заказал аудит: есть SEO-подрядчик, прежние разработчики, иногда сам собственник. Той самой панелью управления базой, судя по датам, кто-то регулярно пользовался. Молча снести её - значит сломать чужой рабочий процесс, а объясняться будет заказчик.",{"type":13,"content":580},[581],{"type":16,"text":582},"Логика такая: находки, потом отчёт, потом решение владельца, и только потом правки - с бэкапом до изменения. Файлы, к слову, были открыты уже пять месяцев; час до ответа собственника ничего не менял.",{"type":27,"attrs":584,"content":585},{"level":29},[586],{"type":16,"text":587},"Что было на выходе",{"type":13,"content":589},[590],{"type":16,"text":591},"Два документа. Технический разбор - что где лежит, каким запросом это проверяется, что предлагается сделать. И отчёт собственнику человеческим языком: что нашли, чем это грозит, как давно открыто, что делать в порядке важности и сколько это займёт (получилось около трёх часов работы).",{"type":13,"content":593},[594],{"type":16,"text":595},"Плюс один вопрос, на который может ответить только он: панелью пользуются подрядчики - убираем сразу или сначала предупреждаем.",{"type":27,"attrs":597,"content":598},{"level":29},[599],{"type":16,"text":600},"Что проверить у себя",{"type":111,"content":602},[603,609],{"type":114,"content":604},[605],{"type":13,"content":606},[607],{"type":16,"text":608},"Проверьте, куда ваш плагин бэкапов кладёт копии. Если внутрь сайта - у вас уже открытая база, вопрос только в том, нашли её или нет.",{"type":114,"content":610},[611],{"type":13,"content":612},[613],{"type":16,"text":614},"После любого переезда сайта пройдитесь по остаткам: архивы, установщики, папки с названием installation, копии конфигов.",{"type":27,"attrs":616,"content":617},{"level":29},[618],{"type":16,"text":194},{"type":196,"attrs":620},{"id":621,"junction":199,"collection":200},"43a00a40-0b05-477b-8ee1-add2da798776",{"type":13,"content":623},[624],{"type":16,"text":625},"Посчитайте на своих цифрах. Проверка - три часа работы. На другой чаше весов ваша база: умножьте число заявок в ней на обычные для B2B 3 000 - 15 000 рублей за заявку - столько вы за них уже заплатили. Дальше смена всех паролей и ключей и разбор по 152-ФЗ - это обычно дни руководителя по 7 000 - 10 000 рублей. И доказать, что файлы никто не скачал, не выйдет: логов за пять месяцев нет.",{"type":196,"attrs":627},{"id":628,"junction":199,"collection":434},"5edbabe7-56b5-4def-9699-a3eda5c731c9","Приоткрытая дверь хранилища, полоса света на рядах коробок, незапертый замок",{"title":631,"meta_description":632,"focus_keyphrase":225,"og_image":220,"no_index":226,"no_follow":226,"sitemap":633,"additional_fields":634},"Утечка базы сайта через открытые бэкапы: как проверить свой сайт","Кейс аудита: полные копии базы с персональными данными клиентов скачивались с сайта по прямой ссылке. Что искать, как проверять и почему это не взлом, а рабочий мусор.",{"change_frequency":228,"priority":229},{},"2026-08-27T18:03:48.000Z",[637,639],{"sort":235,"tags_id":638},{"name":237},{"sort":29,"tags_id":640},{"name":240},[642,654],{"id":621,"sort":220,"collection":200,"item":643},{"items":644,"columns":254},[645,648,651],{"lead":646,"text":647},"3 часа","столько заняла проверка: находки, отчёт собственнику и план правок по важности",{"lead":649,"text":650},"5 месяцев","столько копии базы скачивались по прямой ссылке, пока собственник не спросил",{"lead":652,"text":653},"3 000 - 15 000 рублей","обычная цена заявки в B2B; в открытой копии базы лежали все заказы клиентов",{"id":628,"sort":220,"collection":434,"item":655},{"cta_variant":461,"heading":656,"body":657,"button_label":464,"url":220,"glow":231},"Проверить свой сайт?","Если у вас стоит плагин бэкапов или был переезд сайта, копии базы могут лежать снаружи прямо сейчас. Напишите, что за сайт и хостинг - оценю, сколько займёт проверка и что делать с находками.",{"id":659,"modified_on":660},"4c65f02c-1ce3-4f81-bddd-7537e050386b","2026-08-27T18:12:31.902Z",{"id":662,"title":663,"slug":664,"excerpt":665,"content":666,"cover_alt":795,"cover_position":220,"reading_time":254,"seo":796,"robots_index":231,"seo_title":797,"seo_description":798,"date_published":801,"date_modified":220,"source_lead":220,"rubrics":802,"blocks":808,"cover":824},"d82b4980-87a8-4007-b7b1-e98ed1181f73","Один вопрос за 7 долларов: сколько на самом деле стоит ИИ в месяц","skolko-stoit-ii-v-prode","Если ИИ у вас уже работает или вы только закладываете его в бюджет - это про вас. За две недели 57 процентов счёта дали не клиенты, а один зациклившийся вопрос стоил 6,87 доллара вместо доли цента. Ниже - четыре ограничителя, каждый ставится меньше чем за день.",{"type":10,"content":667},[668,672,676,681,685,693,701,705,710,714,718,722,727,731,739,755,759,767,772,776,780,785,788,792],{"type":13,"content":669},[670],{"type":16,"text":671},"На одном из проектов однажды утром на общем счёте оставалось 10,79 доллара при расходе 23,76 доллара за предыдущие сутки. То есть меньше чем через сутки всё, что работает на ИИ, просто перестало бы отвечать. Дальше был разбор, и он оказался поучительнее любой теории.",{"type":13,"content":673},[674],{"type":16,"text":675},"Такой расход в бизнес-планах внедрения ИИ обычно отсутствует как класс. Считают разработку, подписку, сервер. А платить приходится за сами вычисления: каждый ответ модели стоит денег, и цену определяет устройство системы, прайс провайдера тут вторичен.",{"type":27,"attrs":677,"content":678},{"level":29},[679],{"type":16,"text":680},"Откуда берётся расход",{"type":13,"content":682},[683],{"type":16,"text":684},"Модель берёт деньги за токены - куски текста на входе и на выходе. Пока вы что-то спрашиваете у неё в чате, это копейки. Как только она встроена в работу компании, цену поднимают три вещи, и они не складываются, а умножаются одна на другую.",{"type":13,"content":686},[687,691],{"type":16,"marks":688,"text":690},[689],{"type":121},"Длина контекста.",{"type":16,"text":692}," Агент, который перед ответом подтягивает документы, историю переписки и описание инструментов, отправляет в модель не вопрос пользователя, а несколько страниц текста. Каждый раз.",{"type":13,"content":694},[695,699],{"type":16,"marks":696,"text":698},[697],{"type":121},"Количество шагов.",{"type":16,"text":700}," Современный ИИ-помощник не отвечает одним запросом. Он подумал, сходил за данными, прочитал результат, подумал снова. Один диалог - это десяток обращений к модели, и платите вы за каждое.",{"type":13,"content":702},[703],{"type":16,"text":704},"Самое коварное - фоновые процессы: обработка данных по расписанию, разметка, обогащение записей. Работают без человека, круглосуточно, и никто на них не смотрит.",{"type":27,"attrs":706,"content":707},{"level":29},[708],{"type":16,"text":709},"Что показал разбор",{"type":13,"content":711},[712],{"type":16,"text":713},"Своего учёта расходов в системе не было, и это самое неприятное. Считать пришлось задним числом, вытаскивая цифры из истории запусков - а она хранилась две недели. Что было раньше, уже не восстановить.",{"type":13,"content":715},[716],{"type":16,"text":717},"Жгли бюджет не пользователи. Тридцать шесть процентов расхода за две недели пришлось на одного сотрудника, который тестировал функциональность. Ещё двадцать один процент - на фоновую разметку профилей, работавшую по расписанию. Больше половины денег ушло мимо той работы, ради которой систему строили.",{"type":13,"content":719},[720],{"type":16,"text":721},"А главное - у агентных узлов не был выставлен потолок числа шагов. В нормальном режиме агент делает три-пять итераций и отвечает. Один вопрос, на котором агент зациклился, ушёл в 117 итераций и стоил 6,87 доллара. Один. Вопрос. При среднем чеке в доли цента.",{"type":27,"attrs":723,"content":724},{"level":29},[725],{"type":16,"text":726},"Что мы поставили",{"type":13,"content":728},[729],{"type":16,"text":730},"Ничего сложного - и в этом суть. Все меры дешёвые, но вводить их нужно заранее, пока счёт ещё не кончился.",{"type":13,"content":732},[733,737],{"type":16,"marks":734,"text":736},[735],{"type":121},"Потолок итераций для каждого агента.",{"type":16,"text":738}," Основному ассистенту - 10 шагов, вспомогательным поисковым агентам - 6, фоновой разметке - 5. Если агент не уложился, он останавливается и честно говорит, что не смог, вместо того чтобы крутиться дальше за деньги.",{"type":13,"content":740},[741,745,747,753],{"type":16,"marks":742,"text":744},[743],{"type":121},"Уменьшение выдачи поиска.",{"type":16,"text":746}," ",{"type":16,"marks":748,"text":752},[749],{"type":180,"attrs":750},{"href":751},"https:\u002F\u002Fagmazin.ru\u002Fblog\u002Fpoisk-po-smyslu-vektornaya-baza","Агент, ищущий по базе знаний",{"type":16,"text":754},", тянул в контекст по 25-31 фрагменту, а один процесс - 60. Снизили до 15 и 20. Расход упал, а качество ответов - нет: лишние фрагменты не помогали модели, а разбавляли её внимание. Это частая история - \"дадим побольше контекста\" ухудшает ответ и увеличивает счёт одновременно.",{"type":13,"content":756},[757],{"type":16,"text":758},"Ещё одна копеечная мера, которую все откладывают: разные ключи для боевой системы и для тестовой копии. Пока ключ один на всех, любые опыты разработчиков и сотрудников оплачиваются из боевого бюджета. Отдельный ключ со своим лимитом это закрывает.",{"type":13,"content":760},[761,765],{"type":16,"marks":762,"text":764},[763],{"type":121},"Свой учёт.",{"type":16,"text":766}," Собственная запись: какой процесс, сколько токенов, по какому поводу. Отчёты провайдера приходят постфактум, и разбор тогда начинается с археологии по журналам с двухнедельной глубиной.",{"type":27,"attrs":768,"content":769},{"level":29},[770],{"type":16,"text":771},"Что с этим делать, если вы только внедряете",{"type":13,"content":773},[774],{"type":16,"text":775},"Вопрос не в том, сколько стоит запрос. Считать надо процесс целиком: сколько он стоит в месяц при ожидаемой нагрузке. Формула грубая, но рабочая: количество обращений умножить на среднее число шагов агента, умножить на средний объём контекста, умножить на цену модели. Полученную цифру умножить на два - на фоновые задачи и на людей, которые будут это тестировать.",{"type":13,"content":777},[778],{"type":16,"text":779},"И сразу заложить четыре вещи: лимит на ключ, потолок шагов у каждого агента, отдельные ключи для сред и оповещение при исчерпании порога. Ни одна из них не требует ни дня работы. Их не делают по другой причине: на старте расход выглядит как погрешность. А это помесячная строка бюджета, вроде электричества.",{"type":27,"attrs":781,"content":782},{"level":29},[783],{"type":16,"text":784},"Что это даёт вам в месяц",{"type":196,"attrs":786},{"id":787,"junction":199,"collection":200},"b436b48a-895f-4210-a0de-37a27a651cf3",{"type":13,"content":789},[790],{"type":16,"text":791},"Считайте на своём счёте. В разборе выше 57 процентов расхода дали не клиенты: 36 процентов - сотрудник на тестах, 21 - фоновая разметка. Умножьте свой счёт на 0,57, вот часть, которой никто не управляет. Каждый ограничитель ставится меньше чем за день - это 7 000 - 10 000 рублей по дню руководителя. А сутки с пустым балансом - это заявки, которые никто не принял, по 3 000 - 15 000 рублей.",{"type":196,"attrs":793},{"id":794,"junction":199,"collection":434},"369067b4-36c1-414a-a42f-46c67756004d","Барабаны счётчика в быстром вращении и падающая капля",{"title":797,"meta_description":798,"focus_keyphrase":225,"og_image":220,"no_index":226,"no_follow":226,"sitemap":799,"additional_fields":800},"Сколько стоит ИИ в месяц: расходы на токены LLM и лимиты в проде","Реальные расходы на ИИ в работающей системе: 57 процентов счёта за две недели дали не клиенты, один зациклившийся вопрос - 6,87 доллара. Четыре ограничителя, каждый ставится меньше чем за день.",{"change_frequency":228,"priority":229},{},"2026-08-27T17:56:48.000Z",[803,805],{"sort":235,"tags_id":804},{"name":237},{"sort":29,"tags_id":806},{"name":807},"ИИ и модели",[809,812],{"id":794,"sort":220,"collection":434,"item":810},{"cta_variant":461,"heading":462,"body":811,"button_label":464,"url":220,"glow":231},"Если вы закладываете ИИ в бюджет и не понимаете, во что он обойдётся в месяц - опишите задачу в оценщике. Отвечу с вилкой по работе и прикидкой месячного расхода на модель.",{"id":787,"sort":220,"collection":200,"item":813},{"items":814,"columns":254},[815,818,821],{"lead":816,"text":817},"57 процентов счёта","за две недели дали не клиенты: тесты сотрудника и фоновая разметка профилей",{"lead":819,"text":820},"6,87 доллара","стоил один зациклившийся вопрос: 117 шагов вместо обычных трёх-пяти",{"lead":822,"text":823},"меньше дня работы","уходит на каждый из четырёх ограничителей, дальше они держат счёт без вашего участия",{"id":825,"modified_on":826},"72600d64-5427-4500-b77f-048f887a73b8","2026-08-27T18:12:34.406Z"]