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