Обновлён открытый ИБ-проект на Go под названием cariddi для поиска уязвимостей и проблемных мест на любых сайтах, включая спрятанные API‑ключи и токены, забытые админки, файлы, которые не должны были быть в открытом доступе.


Измерение, сбор, анализ и представление информации
Сервисы, которые позволяют проверить приватность в браузере и выявить утечки личных данных:
Browserleaks: подскажет, какие данные ваш браузер раскрывает другим сайтам;
CreepJS: оценивает, сколько технической информации ваш девайс отдаёт в фоне;
FingerprintJS: демонстрирует, насколько уникален ваш цифровой отпечаток;
Cover Your Tracks: быстрый тест, который показывает, насколько легко вас идентифицировать;
WebBrowserTools: набор простых тестов для оценки приватности и безопасности в браузере.

Я сделал штуку, которая за час-полтора, если хватит денего на серверы то = за минуты, читает ВСЁ, что человек писал во «ВКонтакте» за 12 лет, и выдаёт честное ревью: добряк-ботан, токсичный вояка или шизо-экстремал. Без суда, без сплетен — только цифры и цитаты. Или проверить себя и понять, что нужно удалить некоторые посты от греха подальше. Может у тебя было время когда тебе нравился товарищ Ленин, а сегодня его запретили.
Как работает
Вбиваешь ссылку на страницу (или свой ID).
Сервис скачивает 100 % постов и комментов (официальное VK API, никакого взлома).
Bert + detoxify считают токсичность, темы и сентимент.
Через время получаешь PDF:
– сколько негатива/позитива;
– топ-темы (рыбалка, политика, IT, наркота, оружие);
– риск-флаги (экстремизм, суицид, оружие, наркота) с прямыми цитатами;
– динамику: «в 2022 стал злее на 37 %».
Пример из жизни
Проверил себя — 8 % токсичности, 0 флагов. Проверил соседа — 38 % токсичности, 1 постов про ствол.
Законно ли?
Собираю только публичное, без переписок. Профиль закрыт — пишет - доступа нет.
Зачем это вообще
HR-отделы — чекнуть кандидата до интервью.
Самопроверка перед поступлением/наймом.
Родители — глянуть, чем реально живёт подросток.
Банки/страховщики — оценить риск-поведение (агрессия/суицид = выше вероятность ДТП).
Что дальше
Если пост наберёт ≥ 300 «вверх» и 50+ комментов «хочу» — допиливаю приложение в продакшн версию для запуска. Если больше - докручу Instagram и TikTok. Своим варианты скидывайте в комменты.
Понадобиться ли вам такой «цифровой зеркал» или это очередной «пылесос для данных»? В комментариях — пишите, кого первым проверить: своё начальство, бывшего или самого себя :)
Байесовские А/Б-тесты: средние
-Блокнот: https://github.com/andrewbrdk/Bayesian-AB-Testing/blob/main/Байесовская_оценка_АБ-тестов.ipynb
-Все видео: https://www.youtube.com/playlist?list=PLqgtGAeapsOPpV0FqeXEpWosHBW8ZebYl
SEO — бессмертная база без которой не работает сайт
1C Франчайзи пришёл в сентябре 2024 на рекламу. Хотел продвигаться по Москве и Московской области. С помощью рекламы загрузить работой отдел продаж. Но мы не взяли проект в работу. И вот почему.
Сайт был не готов к рекламе: не было нужных страниц, форм заявок, цен, отзывов и т.п. Провели SEO-аудит и выкатили огромное количество правок. До решения проблем с сайтом работать с рекламой отказались.
Основные проблемы по итогам аудита:
Ошибки в вёрстке
Ошибки в навигации
В Яндекс Метрике настроены только автоцели
Проблемы с коммерческими факторами и юзабилити
И т. п.
После доработки сайта и настройки базового SEO, запустили рекламу. За 2 месяца завалили заявками отдел продаж заказчика так, что пришлось приостановить рекламу.
Подробный кейс со всеми нюансами здесь.
P.S.
Анонсы статей и кейсов выкладываю в Телеграм-канале.
♨️ Горячая тема - сайты теряют органический трафик из-за нейровыдачи в поиске.
Вместе с SEO начинайте упарываться в GEO (Generative Engine Optimization), AIO (AI Optimisation), LEO (LLM Optimization) или AEO (Ask Engine Optimization) - название еще не закрепилось.
Если отбросить кликбейтные заголовки и инфорциганщину, в сухом остатке:
⤴️ SEO всегда разделялось на техническую оптимизацию и продвижение.
И да, к технической оптимизации сейчас появилось больше требований.
⤵️ Антитренд
Попадание в нейровыдачу, снизит количество переходов и конверсий, т.к. пользователь получает в выдаче не всю информацию о товаре или услуге, а ответ нейронки перемешан с информацией с разных сайтов.
Иными словами: отсутствие переходов рассматривается как следствие, а не причина.
Пока наблюдаем, оптимизируемся и смотрим на нейровыдачу, как на точку контакта с брендом.
Байесовские А/Б-тесты: примеры байесовского моделирования
-Блокнот: https://github.com/andrewbrdk/Bayesian-AB-Testing
-Все видео: https://www.youtube.com/playlist?list=PLqgtGAeapsOPpV0FqeXEpWosHBW8ZebYl
Байесовские А/Б-тесты: общая картина
-Блокнот: https://github.com/andrewbrdk/Bayesian-AB-Testing
-Все видео: https://www.youtube.com/playlist?list=PLqgtGAeapsOPpV0FqeXEpWosHBW8ZebYl
Представлена бесплатная платформа Pagy, которая позволяет создавать лендинги и небольшие веб-проекты за секунды. Работает в браузере и собирает сайты или визитки без привлечения дизайнера, верстальщика. Не требует никакой установки ПО. Все просто: выбираете шаблон и сразу его редактируете, пишите текст, вставляете ссылки и пикчи. Ни одной строчки кода писать не нужно, хостинг не требуется. Есть аналитика метрик сайта и сотни уже готовых дизайнов от разрабов и коммьюнити.
ИЩЕМ ЗАМЕНУ КОФЕИНУ с помощью ChatGPT
Я люблю кофе, но, как и у некоторых других людей, у меня повышается давление и сильно учащается пульс от большого количества выпитого кофе, а 2..3 порции порции на меня уже не действуют. На дворе 21 Век в разгаре и существование аналогов кофеина без раздражающих побочных эффектов весьма вероятно.
Я попросил помощи у ChatGPT и он успешно создал очень сложную таблицу с легальными аналогами кофеина и даже с вычисляемым столбцом на основе НЕЧЁТКИХ критериев (если вы это сможете на SQL - Вы гений!), но плохо справился с сортировкой в этой таблице.
Внимание: ниже изображение, ссылки некликабельные. Я ничего не продаю.

В первом цифровом столбце не удалось отсортировать числа по убыванию. Пытался примерно 15-20 минут. Пробовал разные промпты и пояснения. Это странно.
Этот инструмент (ChatGPT) отлично понимает команды манипуляции таблицей, в данном пример я попросил создать таблицу на основе данных с крупных магазинов, указал какие столбцы нужны и какая в них должна быть информация, указал порядок столбцов, в том числе относительный, типа столбец с такими данным добавь перед таким-то столбцом.
ChatGPT смог создать СВОДНЫЙ столбец на основе ранее созданных столбцов.Это столбец со взвешенными суммами весов веществ в других столбцах и коэффициенты взвешивания ОН сам нашел и нашел весьма точно.
Причем для каждого продукта ОН смог найти состав веществ по определенным критериям и перечислил их, создав отдельный столбец. Не все вещества, а только по определенным фильтрам (только такие, которые не являются кофеином, но оказывают воздействие, сходное с действием кофеина. Попробуйте самостоятельно без ИИ запрограммировать такой запрос на SQL с учетом нечеткого критерия схожести воздействия и еще определите коэффициент похожести для создания взвешенной суммы масс веществ в порции БАД.
ChatGPT даже частично смог отсортировать по взвешенной сумме. Но выполнив так много сложной работы в сортировке он немного ошибся.
По мотивам статьи, которую я перевел и опубликовал у себя в ленте - https://habr.com/ru/articles/899382/
Я чекнул этот кейс на своем проекте и результаты не совпали с выводами автора.
Я сделал все точно также, как описано в статье и нет, не увидел я корреляции между 130 днями и статусом просканировано не проиндексировано. Страницы с таким статусом есть и меньше чем через 130 дней после последнего сканирования, как показано на скрине.

Такие страницы пропадают только на 13 днях, а с 13 и выше периодически встречаются выпавшие страницы.
Так что, не сходится кейс, но как мнение, почему бы и нет)))
Смотрел проект в тревел сегменте, трафик по всему миру (чистый бурж).
Redash в Amvera Cloud
Сегодня мы выпускаем Redash, как преднастроенный сервис.
Redash позволяет осуществлять запросы к базам данных и визуализировать результаты. Это хороший и простой BI-инструмент, которым мы пользуемся сами.
Для установки Redash необходимо заполнить по инструкции несколько переменных/секретов для подключения к PostgreSQL и Redis, и выбрать тариф от 290 р./мес.
Amvera Cloud — это облако для простого деплоя приложений через git push. Встроенный CI/CD, бэкапы и мониторинг позволяют развернуть проект тремя командами в IDE и не думать о настойке инфраструктуры. А встроенное проксирование к OpenAI, облегчает работу с LLM. Amvera проще, чем использование VPS.
Как Telegram искажает ссылки с Habr
Отправил в телеграм ссылку на статью с habr, скопировав из адресной строки.
Выглядит как просто адрес статьи - habr/companies/.../articles/xxxxxxx
Но после создания предпросмотра в телеграм кроме ссылки появляется КДПВ, заголовок и начало текста статьи. Вроде всё правильно. Но только ссылка уже дополнительно после адреса содержит ?utm_source=vk_habr&utm_medium=social&utm_campaign=yyyyyyy
И при нажатии на ссылку предпросмотра пойдёт другая статистика - не прямая ссылка, а из рекламной кампании.
Как минимум - это сработало при пересылке статьи "Как устроен китайский завод электроники глазами русского инженера".
Я подумал, что такой адрес у КДПВ, но нет - вроде картинки все на habrastorage.
Или хабр отдаёт тегированные ссылки.
Жалко, нет хаба "Телеграм"
Анализируем access_log в bash
Если вы стали жертвой фрода, ваш сайт пытались взломать или нагрузка на ваш ресурс резко возросла, найдите IP злоумышленников и заблокируйте доступ в .htaccess с помощью директивы Deny:
Deny from 111.22.33.44
IP злоумышленников есть в файлах access_logs (логи доступа). Чтобы найти IP, с которого посетили, например, 'order/1234', переходим в папку с логами и вводим команду:
$ grep 'order/1234' * | awk '{print $2}' | uniqЕсли таких страниц много, создайте файл со списком url (например, ban.txt) и найдите сразу все IP одной командой:
$ grep -f ban.txt * | awk '{print $2}' | uniqОбратите внимание, что файл нужно создавать в unix (из-за разницы в том, как ОС делают переносы строк). Список запретных URL особенно эффективен, чтобы найти тех, кто сканирует сайт на уязвимости: например, ищет администраторскую (admin, root), техническую (var, database, php) и отладочную информацию (debug, test, error, exception).
А еще давайте найдем тех, кто создает аномально много запросов:
$ cat access_log-20241030 | awk '{print $2}' | sort | uniq -c | sort | tail -5Вывод команды покажет 5 наиболее активных посетителей в указанном логе (access_log-20241030) с количеством запросов. Проверьте тех, кто создает в намного больше запросов, чем остальные — это могут быть как очень активные пользователи или боты поисковых систем, так и злоумышленники.
Сегодня Яндекс.Метрика отключила сервис мониторинга сайтов.
Я создал замену: Телеграм-бот, который следит за доступностью сайтов и присылает уведомления, если что-то не так.
Сервис Яндекса умел отправлять письма и SMS двух видов:
Проблемы с доступностью сайта.
Сайт снова доступен.
В своём боте я сделал чуть больше проверок:
Сайт недоступен/снова доступен.
Изменился заголовок сайта.
Может выручить, если в какой-то момент вместо сайта появится заглушка "домен не прилинкован к директории" или что-то в этом роде.
Истекает срок действия SSL-сертификата или домена.
Изменился конечный адрес (если срабатывает переадресация).
Казалось бы, простой пингатор, но на деле нюансов оказалось очень много. Может быть, напишу статью с техническими деталями.
Старался от души и сделал полезный инструмент для владельцев/администраторов сайтов.
Пока что всё бесплатно, пробуйте!
Telegram-бот "Мониторинг сайта"

Невидимый трекинг через куки
Всем привет. Тестирую формат постов и, заодно, делюсь подсмотренной идеей трекинга пользователей «без палева», который прямо-таки очень тяжело отловить (если не делать отладку HTTP-запросов) и очень технически сложно заблокировать.
Разработчики [CENSORED], придумали практически безотказный способ отправлять логи, даже если пользователь использует блокировщики. Схема простая:
Случилось событие, которое нужно затрекать.
С помощью JavaScript создаётся кука, имя которой соответствует определённому формату + рандомная строка-суффикс, а в значении содержится urlencoded-набор-параметров-значений.
Любой следующий запрос к сервису содержит эту куку. Сервис в ответе в хэдерах пишет, что куку нужно удалить. Кука отправилась и удалилась, никто ничего не заметил, никаких лишних запросов, трекинг-данные доставлены.
PROFIT.
Я читал много разных новостей про экзотические способы трекинга, но конкретно этот обнаружил самостоятельно. Буду рад, если покормил чью-то паранойю.
Какие качественные и количественные исследования стоит проводить в рамках Discovery-процесса?
Качественные:
Глубинные интервью
Помогают получить искреннее мнение вместо социально одобряемых ответов, в отличие от фокус-групп. К глубинным интервью еще относят и другие форматы, например, CustDev, которые выявляют проблемы и потребности пользователей.
CJM
Делим пользователей на сегменты и общаемся с каждым из них. Дальше просим пройти определенный сценарий и рассказать об опыте взаимодействия с продуктом, от первого знакомства до первой покупки. Так выявляем трудности на каждом этапе.
Юзабилити-тестирование
Перед запуском продукта создаем кликабельный прототип сервиса и просим пользователя выполнить задачу. Главное — не подсказывать и не убеждать в удобстве прототипа, а оценить его объективно. На выходе получаете тест первого клика и тепловую карту сервиса. Метод подходит для проверки дизайна и контента и помогает выявить эффективные решения.
Количественные:
Количественный опрос
Проводим их после качественных исследований для подтверждения результатов. Это простой способ привлечь респондентов и быстро собрать репрезентативную выборку. В итоге получаем статистически значимые данные по интересующим вопросам.
A/B-тесты
Делим респондентов на 2 группы: тех, кто видит старый интерфейс, и тех, кто видит новый или экспериментальный. Иногда показываем два варианта дизайна для выбора лучшего. После сбора достаточного количества данных завершаем тест и подводим итоги.
Как понять, что пора заканчивать процесс Discovery
В этом поможет закон убывающей полезности. Как он работает, объясним на примере.
Когда мы проводим качественные исследования, берем 5–7 человек на один сегмент целевой аудитории. Социология и статистика показывают, что этого достаточно, чтобы выявить 80–90% проблем сегмента. Конечно, мы можем опросить и 30 человек, но выявим ли мы таким образом 100% проблем? Скорее всего, мы потратим намного больше ресурсов, а в итоге сможем лишь незначительно уточнить данные.
Закон убывающей полезности работает и в случае исследования конкурентов — изучать всех не имеет смысла. Мы просто утонем в данных. Есть три сигнала, которые четко указывают, что Discovery пора заканчивать.
Когда кончаются гипотезы. Вы провели несколько итераций исследований и поняли, что пополнять бэклог больше нечем: новых инсайтов нет.
Когда гипотез слишком много. Вы проводите исследования и продолжаете пополнять бэклог снова и снова, задач там уже на три квартала вперед.
Когда заканчиваются время и деньги. Исследования можно проводить бесконечно, но у любой задачи есть дедлайны и бюджеты.
Мы всегда можем вернуться к Discovery, чтобы проверить какую-то фичу. Например, если поменяли интерфейс — можем провести юзабилити-тестирование. Но на самом первом этапе, когда мы еще только выясняем потребности пользователя, нужно уметь вовремя остановиться.
Подробнее о процессе Discovery — в большой статье.
Почему размер телефона имеет значение
На дизайне до безобразия редко вспоминают, что люди привыкли пользоваться разными смартфонами. Одни обожают лопаты до локтя, другие — миниатюрные аппараты, которые умещаются в ладони. А между тем, первые исследования о том, как люди держат в руках телефон и планшет, появились на Западе еще в 2010-х.
Вот недавний кейс из нашей практики. Заказчик сделал в мобильном приложении ленту с фотографиями. И всё бы хорошо, но было одно «но». Чтобы листать кадры, нельзя было просто свайпать. Вместо этого нужно было жать на кнопку в самом низу фото. Причем на маленьких девайсах блок с фото, заголовком и самой кнопкой не умещался на экране. Чтобы ее увидеть, нужно было скроллить вниз. И далеко не каждый это понимал.
Более того, если пользователь находил заветную кнопку и перелистывал фото, ему приходилось скроллить вверх, чтобы увидеть ее целиком. Чувствуете, как больно? При этом на большом IPhone Pro Max всё было в полном порядке — красиво и удобно.
Этот кейс напоминает нам, что у пользователей разный опыт, и это не всегда очевидно. А ведь есть еще куча более тонких нюансов:
💬 Что, если пользователь предпочитает планшет?
💬 А если он использует только левую руку, потому что в правой держит кофе?
💬 А вдруг это приложение для готовки, и с ним удобнее работать голосом?
Иногда детали просто невозможно узнать без исследования. А без этих деталей сделать удобный интерфейс — очень, очень сложная задача.
Больше постов о метриках и исследованиях — в нашем канале.