Вот така фигня, малята
Как компьютер научился видеть?
Компьютерное зрение (CV) появилось на горизонте где-то в 1960-х годах. Мало того, что это было время, когда компьютеры сами по себе были чем-то из области фантастики, но инженеры в этой области уже начали задумываться: "А что если мы научим эти машины видеть?"
Лоуренс Робертс, или просто Ларри, стал пионером в области CV. Закончив MIT, он в 1963 году защитил докторскую по использованию компьютеров для обработки изображений.
Но какой была его мечта? Научить машины "видеть".
В те времена ученые уже понимали, что компьютеры могут больше, чем просто считать. Робертс и его коллег вдохновляла идея, что машины могут анализировать визуальную информацию так же, как и люди. Они хотели автоматизировать задачи, которые до сих пор были подвластны только человеческому глазу.
Что ж, у них это получилось.
Робертс сосредоточился на преобразовании 2D-изображений в 3D-информацию. Это была сложная задача, но он разработал методы для определения границ объектов и их сопоставления с моделями.
Технически, методы Ларри были похожи на нынешние сверточные нейронки (CNN): доктор использовал техники для выделения границ объектов на изображениях. Этот процесс включал нахождение изменений яркости или контраста на изображении, чтобы определить, где один объект заканчивается, а другой начинается.
И это дало свои плоды — его первым достижением стала программа, способная распознавать простые формы: круги, треугольники, квадраты. Компьютер смог обработать изображение блок-схемы или чертежа с четкими линиями и углами. Это и стало тем самым “мостиком” от догадок к действиям – машины действительно могли анализировать визуальные данные.
Что было дальше?
Расскажем в следующих постах.
Фронтендер Гриша
Как я реализовал авторизацию в приложение Mini Apps Telegram или почему многие Mini App имеют дыры в безопасности?
Всем привет! Как насчет того чтоб перенять мой опыт?
Сегодня я хочу затронуть две темы, о одной из них мало информации в открытых источниках. Первое - это как я реализовал защиту в Telegram на REST API. Второе - это какие дыры есть в Mini App Telegram.
Вводные данные
Я разрабатываю Mini App в Telegram, это такая штука открывающаяся внутри бота и есть внутрение приложение Telegram.
Стояла задача разработать приложение с админкой, тратить время на развертывание сервера, налаживание и его защиту не было времени. Нужна оперативная работа.
Изучив возможные варианты, выбрал Strapi - это OpenSource проект написанный на Node.js. Развернуть можно как в облаке так и локально. Имеет поддержку русского языка.
Так выглядит админка Strapi
Если в общем, то мой стек используемых инструментов выглядит следующим образом:
Telegram App ( Библиотека )
Strapi ( Админ панель + REST API )
PostgreSQL ( База данных )
Next.js ( Само приложение )
Стек технологий
Решение с защитой что я предлагаю подойдет каждому. Главное понять его принцип.
Как я защищал REST API? Валидация данных
Когда пользователь открывает веб-приложение через Telegram, ваше приложение получает начальные данные от самого Telegram, такие как идентификатор пользователя и его имя. Чтобы убедиться, что эти данные подлинные и не были изменены, используется специальный процесс проверки.
Преобразование данных: Приложение преобразует начальные данные в удобный формат.
Создание строки для проверки: Из всех параметров (кроме специального hash) создается отсортированная строка.
Создание секретного ключа: С помощью токена вашего бота создается секретный ключ.
Создание цифровой подписи: Используя секретный ключ и строку параметров, создается цифровая подпись.
Сравнение подписей: Приложение сравнивает созданную подпись с полученной от Telegram. Если они совпадают, данные подлинные.
Этот процесс помогает убедиться, что данные, полученные от Telegram, не были изменены, обеспечивая безопасность вашего приложения и его пользователей.
После успешной валидации я генерировал JWT токен для пользователя и он становился полноценным пользователем в моей системе.
Далее можно с ним делать что угодно 😏 - ну допустим заблокировать его, дать права админа и т.д.
А сам пользователь имеет полный доступ к возможностям приложения. Но вне телеграма он ничего не сделает.
Какие дыры есть в приложениях и почему?
Не буду показывать на конкретном примере, но большинство разработчиков не умеют или не хотят защищать свои приложения, а чисто привязывают все к Telegram ID ( ID вашего аккаунта ) и так и живут.
Telegram ID состоит из цифр и перебрать его методом подбора не составит труда и получить доступ к аккаунту в Mini App.
Зачастую этим грешат новые приложения или не опытные разработчики, например в Telegram Apps Store ваше приложение проверяют на наличие этой защиты.
Кроме того нужно учесть что само приложение не должно никоем образом отображаться в поисковиках, если все взаимодействие выстроено на основе телегерама. Приложения же имеют свой адрес и могут индексироваться, не забывайте выключать!
Кроме всего этого можно запретить вне телеграма заходить в ваше приложение тем же способом что описан выше.
Как же защитить приложение и пользователей?
Не важно на каком языке вы пишите, телеграм уже сделал для вас подсказку, осталось ей воспользоваться.
Оставлю ссылку здесь на данный раздел - Документация Telegram
Итого
Я надеюсь эта статья поможет тем кто хочет или уже занимается разработкой WebApp на Telegram. Если все еще осталось что-то не понятно, то пишите смело - будем вместе разбираться:)
Если у вас так же останутся вопросы или предложения или вы просто захотите поделиться своим приложением, то пишите! Всегда рад пообщаться с читателями 😁
Все же так делают, не так ли?
Готовы к Евро-2024? А ну-ка, проверим!
Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.
А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.
Реклама ООО «Горенье БТ», ИНН: 7704722037
Скуфа не пускают в IT?
Мне 37 лет и я скуф.
Будем считать, что пока да.
Я уже несколько месяцев не пью. И месяц как начал избавляться от лишнего веса.
В общем посмотрел я на все эти IT шные специальности, на солнечные острова, на нежные попы малолетних проституток из Юго-Восточной Азии, на свежий кокоин, собранный девственницами в Колумбии в лунную ночь.
И тоже захотел. А то вокруг мрачный Питер, денег хватает только на проституток из Средней Азии и на пиво по акции из Пятерочки.
Погуглил курсы, и понял, что ничего не понял. Кто то пишет восторг, был дурочком, прошел курс в Сайлент что то там, и уже на Бали. Типа берут сразу же, вокруг гарантии трудоустройства. И прочее. Ни работа, а мечта.
Но беда в том, что английский не мой вариант, в математике и написании кода. В общем не моя тема.
И решил пойти в продажи IT. Благо опыт в продажах есть.
Шлю всем резюме, написал сопроводительное письмо большое.
А отклика нет. Даже отказов.
В отпуске планирую позвонить сам. И всех достать с вопросом "почему скуфа в IT не пускает?"
Кто что посоветует