• Как я RFID клонер делал

    Здравствуйте, уважаемые хабро-жители. Я решил написать небольшую статью о том, как я RFID воевал. История в том, что я хотел написать себе небольшой клонер для RFID ключей и карт. Так же я думал сделать себе простой универсальный ключ для домофона/работы.

    Кого заинтересовала данная тема – добро пожаловать под кат.
    Читать дальше →
  • Как я случайно обнаружил бэкдор в роутерах ZTE для Ростелекома

    Доброго всем дня, друзья.

    Наверное, у каждого из вас бывали такие истории, когда вы теряли связь со всемирной паутиной по той причине, что ваш горячо любимый интернет-провайдер не справился с выполнением своих обязательств по предоставлению услуг связи. Если говорить максимально легко и просто — у вас просто внезапно исчезало интернет-соединение, а Ethernet-кабель, бережно (или не очень) проведённый в ваш дом, не показывал никаких признаков жизни.

    Звонки провайдеру обычно редко заканчиваются положительным результатом. В моей жизни очень часто происходила такая ситуация, когда провайдер вовсе не видел проблемы, а потом, спустя пару часов, при повторном звонке всё же видел проблему и клятвенно обещал, что всё скоро починят-исправят, не забывая извиниться после каждого сказанного предложения.

    image

    И вот в один из апрельских вечеров (когда бОльшую часть страны закрыли на небезызвестную самоизоляцию) я спокойно работал над одним фриланс-проектом, как внезапно связь с внешним миром у меня полностью пропала, тем самым прервав разработку проекта на неопределённое время.
    Читать дальше →
  • Опасность пользовательского ввода в src и url

    Недавно столкнулся с проблемой, когда пользователям было разрешено изменять src тэг элементов страницы.

    Всё в больших размерах, взаимодействие с веб-сервисами становится более гибким и расширенным. На некоторых проектах доступно редактирование/добавление html элементов на страницу. Такие элементы, как:
    <img> <script> <audio> <video>
    и другие, могут наследовать аттрибут src, который указывает на адрес файла. Так же и css стили могут наследовать url.

    Проблема кроется в том, что пользователи могут добавить невалидный src, либо «обрушить» https:// протокол сайта, указав http:// в аттрибуте src. Так же пользователи могут указать ссылку вовсе не на ожидаемое аудио или картинку, а на свой сервер, который будет логировать ip адреса клиентов сайта. «Анонимность?», — До свидания.
    Читать дальше →
  • Разработка утилиты по модификации изображений с использованием искусственной нейросети

    Давно хотел сделать утилиту, благодаря которой можно было бы улучшать изображение с применением искусственной нейросети.

    Идея в том, чтобы взять некий пример с исходным изображением и его ухудшенным вариантом и обучить нейросеть восстанавливать оригинальное по данным из ухудшенного.
    Читать дальше →
  • От поисковика на сайте до собственной поисковой системы

    В этой статье хочу обсудить с Вами такую проблему как поиск на сайте и предложить свой вариант ее решения. В сети огромное множество сайтов, которые оснащены отвратительным поиском, еще больше сайтов вообще без этой функции. Даже вошло в привычку не искать на сайте, а вбивать в поисковик «запрос site:domain.com» или просто «запрос domain». Почему такой важной вещи, как поиск, уделяется так мало внимания? Давайте разбираться вместе.


    Давным давно, когда можно было увидеть Pege Rank, а вебмастера играли на ТИЦ в карты, я создал свой первый сайт на тему автомобилей. Работая на простой CMS, он висел на дешевом хостинге без возможности установить базу данных. Тогда впервые мне пришла идея претворить свой первый проект в крупный портал с удобным поиском. Как только я поделился этой идеей со своим другом, который в то время успешно занимался разработкой и продвижением сайтов в поисковых системах (ПС), сразу же получил неутешительный фидбэк. Мол, это возможно, и даже одному клиенту он попытался это сделать, однако это настолько сложно, что проще сделать еще несколько сайтов и добавить их в сапу, чем заморачиваться над одним проектом с туманными перспективами монетизации. Что-то подобное я уже слышал от сварщика дяди Васи, когда пришел к нему с просьбой сварить две алюминиевых детали. Он долго рассказывал о специальных электродах, которых у него нет в наличии, аргоне, и что в молодости он с напарником из алюминия смастерил небольшой летательный аппарат, но в моем случае проще отказаться от алюминия и сделать все из обычного железа.


    С тех пор прошло много апдейтов ПС, и что же мы видим сейчас? Есть ли простое и быстрое решение, дабы сделать поиск на сайте? Так сказать, появилась ли у дяди Васи аргоновая сварка? Расцвели ли яблони на Марсе? Провел ли Илон Маск тест-драйв новой Tesla Mars? Запустили ли Джеймса Уэбба в космос или до сих пор его тёзка переворачивается в гробу?

    Читать дальше →
  • Распределение данных БД между процессами

    Так вышло, что часто по работе возникает необходимость увеличения производительности. Одним из способов достижения данной цели в языках без нативной поддержки многопоточности является запуск программы в нескольких процессах для уменьшения времени обработки всех данных. Такая ситуация возникает как при работе с очередями, так и при работе с базой данных. Случай с очередями, как мне кажется, задача достаточно тривиальная: просто увеличиваем количество консюмеров. Но возникает вопрос, как распределить данные между процессами в случае с БД.

    Задача — распределить данные между процессами. Цель — увеличить производительность системы без значительного повышения сложности логики.
    Читать дальше →
  • Чему я научился за 4 года в университете

    Еще где-то в 11-12 лет я насмотрелся передач о том, как Марк Цукерберг, Павел Дуров, Билл Гейтс и многие другие разбогатели, создав свои программные продукты. И я тогда решил тоже стать программистом. В школе я всегда был отличником, участвовал и иногда побеждал в различных олимпиадах. У меня ярко выраженный технический склад ума. Моими любимыми предметами были физика, математика и информатика.
    Читать дальше →
  • В России неплохо жить, даже если ты не разраб. Я вообще не думаю о релокейте



    Споры об эмиграции давно не вызывают у меня никаких чувств, кроме недоумения. Вот и fillpackart в своей статье поставил вопрос всё тем же ребром: валить или бороться с несправедливостью у себя дома?

    Мне стало немного грустно от того, что моя точка зрения не отражена ни в посте, ни в комментариях. Вся история в том, что вопрос о переезде вообще не кажется мне существенным вопросом в моей жизни.
    Читать дальше →
  • Создание favicon для сайта 2020

    Что такое favicon и для чего он нужен?


    Favicon – это значок (иконка), который отображается во вкладке браузера, закладках, а также в сниппетах результатов поиска.

    image

    Favicon играет важную роль в веб-приложениях. Он может улучшить внешний вид сайта в выдаче, повышает узнаваемость вашего сайта, помогает пользователю быстро найти необходимую страницу в закладках и вкладках.

    Кроме того, пользователь может добавить страницу вашего сайта на главный экран телефона или сохранить как веб-приложение. В таком случае с помощью favicon можно быстро найти сайт среди большого количества других приложений.

    Какой формат использовать для favicon?


    Раньше в качестве основного формата использовали ICO. Особенность данного формата – мульти-размерность. Данный файл может хранить в себе несколько размеров иконки. На смену ICO пришел формат PNG. ICO все еще поддерживаемый, но большинство современных браузеров выбирают PNG формат иконки, который легче. Некоторые браузеры не могут выбрать правильный значок в файле ICO, что приводит к неправильному использования значка с низким разрешением.

    О каких платформах пойдет речь в этой статье?


    • Classic desktop browsers
    • Android Chrome
    • iOS Safari Web Clip
    • Mac OS
    • Windows

    Читать дальше →
  • Острожно, OAuth2

    Рассмотрим на примере одной из недавних инициатив. Не так давно правительство РФ закидывало удочки в инфопространство о введении обязательной идентификации пользователей, или хотя бы отправителей, электронной почты по паспорту.

    Все как-то посмеялись, рассудили, что инициатива труднореализуема, если вообще реализуема, это же надо будет практически поголовно всех «обилeтить» по всему миру, ну и на этом дискуссии вроде как утихли.

    Однако, не всё так просто, как кажется на первый взгляд.
    Давайте разберёмся.
  • Портативная пушка Гаусса за 1к

    В этом посте будет рассмотрена схема и сборка портативной Пушки Гаусса, которую можно собрать за минимальную сумму, а именно, ускоритель будет собран в сумму ~ 1000р. Схема проста на столько, что ее сможет собрать не разбирающийся. Корпус в свою очередь можно скачать в виде 3D модели.

    image

    Принцип работы Пушки Гаусса


    Мы заряжаем высоковольтный конденсатор и разряжаем его на катушку. При протекании тока в катушке, образуется электромагнитное поле, которое втягивает ферромагнитный снаряд внутрь ствола. Заряд конденсатора расходуется пропорционально быстро и, в идеале, ток через катушку перестает течь в момент, когда снаряд находится в центре ствола. После чего, силы на снаряд перестают действовать и он продолжает движение по инерции, вылетает из ствола.
    Читать дальше →
  • TheDude мониторинг удаленных подключений через RDGW

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

    Относительно давно, была задача, выводить логины пользователей, подключившихся извне к своим рабочим местам, или к ферме терминалов.

    Архитектура у нас была стандартная, Шлюз удаленных рабочих столов (далее RDGW) Брокер (далее RDCB) и несколько терминальных серверов (далее RDSH).

    Для начала был написан на ps простенький скрипт, выводивший необходимые значения
    c:\ps\rdclients.ps1

    Get-WmiObject -class "Win32_TSGatewayConnection" -namespace "root\cimv2\TerminalServices" -ComputerName localhost -Authentication 6 | Select UserName,ConnectedResource

    Начало вроде положено, осталось выдать эти значения на отдельный монитор в СБ.
    Читать дальше →
  • Почему боги говорят на Kotlin?

    Всем привет, в этой статье я расскажу про Kotlin, сравню его с Python, развею некоторые мифы о нём и покажу почему Kotlin — язык богов

    Мифы


    Kotlin — логическое продолжение Java


    Самое частое и несправедливое сравнение языка Kotlin — «апнутая джава», сейчас из этого сделали мем, но многие действительно что-то такое считают. Kotlin работает на виртуальной машине JVM, что позволяет ему работать на разных системах. Работает он на JVM как скомпилированный байткод и поэтому полностью совместим с Java, но Kotlin логическое продолжение Java на столько же, насколько и Java логическое продолжение Kotlin. Я имею ввиду, что работают они на одной машине и компилируются в один байткод, при том являясь независимыми друг от друга языками. Помимо этого есть KotlinNative, работающий в нативной среде, и KotlinJS, работающий в браузере и компилирующийся в Javascript

    Kotlin — язык под Android


    Очень часто встречается стереотип о том, что Kotlin якобы применяется только в мобильной разработке на Android, но на самом деле его потенциал намного больше. У меня есть большой опыт в написании API и ботов на Kotlin, помимо этого KotlinJS позволяет писать PWA, добавляя туда React, если это потребуется, KotlinNative — игры, нативные приложения (IOS, Desktop) и многое другое (даже хром расширения). Просто на Android язык стал официальным и стал цениться больше Java, поэтому часто узнают о нём именно оттуда

    Kotlin сложный, лучше учить Python


    Весомый аргумент тех, кто использует этот язык — его простота, но благодаря не только моей пропаганде, были случаи, когда человек начинал изучать первым языком не Python, а Kotlin и говорил, что для новичка легче последний. У него действительно очень простой синтаксис, я его сравниваю с Java + Python, хотя это субъективно, и многие не согласятся

    Синтаксис


    Теперь, когда мы немного поменяли наше отношение о языке, можно поговорить о волшебном синтаксисе.
    Читать дальше →
  • Вы решили стать разработчиком. Почему нужно учить javascript, а не java?

    Привет, уважаемая редакциия! Здравствуйте, коллеги.

    Через пару-тройку месяцев мне, как разрабочику frontend, исполнится четыре года. А до пятидесяти в паспорте останется немногим меньше двух лет. За эти четыре года жизнь менялась стремительно, и теперь, спустя время, можно проанализировать, какие решения оказались удачными, а какие — не очень.

    Начать я хочу с выбора тех. стека, и, как следствие — специализации. Думаю, мой выбор (frontend, javascript) оказался удачным, и я хочу теперь проанализировать, почему.
    Читать дальше →
  • Мой опыт взаимодействия с мошенниками и модераторами Авито

    Недавно на Хабре выходила статья компании Авито о расплодившихся на их сайте мошенниках и мошеннических схемах. Однако, практически ничего не было сказано о способах препятствования появлению мошенников на сайте в принципе и методов оперативной их блокировки. Так как я очень много сижу в Авито (такое уж у меня хобби — листать авитовскую ленту), хочу поделиться своим опытом вычисления «разводил», и результатами обращения к модераторам, а так же предложениями, как можно было бы уменьшить число обманщиков на страницах сайта.

    Чтобы обнаружить мошенника, нужно думать как он. Какая цель его «работы» — заработок на обмане разными способами. И чем больше людей он обманет, тем, очевидно, «заработает» больше.

    Соответственно — объявление он попытается сделать максимально привлекательным для покупателя, но и так, чтобы это было не подозрительно. Соответственно — в большинстве случаев будет много фотографий, низкая цена, отсутствие номера телефона, описание — максимальная похвала товару, но с указанием на какой-нибудь мелкий недостаток в духе потерянных наушников к смартфону или потертостей на уголках ноутбука.

    Есть даже категории товаров на сайте, где мошенников больше чем реальных покупателей.

    Из тех товаров, что я видел, самая большая концентрация обмана — в продаже такого узкоспециализированного товара, как небольшие токарные станки по металлу. Может быть, это происходит из-за достаточно высокой цены на эти станки, может из-за их редкости, может из-за не всегда грамотной в интернет-покупках целевой аудитории этих объявлений, но, тем не менее, субъективно — именно эта сфера больше всего поражена фейковыми объявлениями. Эту категорию я мониторю и знаю очень неплохо, поэтому буду приводить конкретные примеры из нее.
    Читать дальше →
  • Преобразование Excel в PDF в приложении Java

    В последнее время мне нужно отправить файл Excel моему бизнес-партнеру и не хочу, чтобы он просматривал или изменял важные формулы, поэтому я решил преобразовать файл Excel в PDF. В этой статье я поделюсь своим опытом о том, как конвертировать Excel в PDF в приложении Java с помощью Free Spire.XLS for Java:

    Способ 1: преобразовать всю книгу Excel в PDF.
    Способ 2: конвертировать один лист Excel в PDF.

    Конфигурация среды

    Установите пакет jar через репозиторий Maven, и код для настройки файла pom.xml выглядит следующим образом:

    <repository>
        <repository>
              <id>com.e-iceblue</id>
              <name>e-iceblue</name>
              <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
              <groupId>e-iceblue</groupId>
              <artifactId>spire.doc.free</artifactId>
              <version>2.7.3</version>
        </dependency>
    </dependencies>
    

    Читать дальше →
  • Ищите себя там где вы специалист

    Очень давно хотелось написать такой опус, но что-то останавливало. Возможно школьная оценка по русскому языку, спасибо моему учителю, а может воспитание или профессиональная этика. Речь пойдет о работе. Я очень надеюсь, что хоть кому-то она поможет.

    Для затравки, последнее время все чаще встречаю объявления о коротких и быстрых курсах, “сертифицированном” обучении и прочих услугах не лицензированных, частных учебных организаций, в редакции: “Вас уволили? Приходите к нам! Сделаем из вас специалиста в области IT. Программистом быть просто и деньги сыпятся с неба. Всего один месяц и вы опытный разработчик, с заработной платой 200+ тысяч рублей, только и надо окончить курсы”. Очень много предложений по курсам с последующим трудоустройством.

    К слову, замечу, этот вопрос касается не только IT сферы, к сожалению затрагивает многие направления, например “Пройдите курсы бухгалтера за две недели и вас ждет успешная карьера с высоким окладом”, а еще были месячные курсы повара 3 разряда — всего за четыре недели и можно претендовать на должность шеф-повара…
    Читать дальше →
  • Open redirect и захват аккаунта

    Однажды лазил по сервисам на которых не редко зависаю, и наткнулся на один из них, в котором используется авторизация через стим.


    При обращении к данному способу происходил переход на страницу стим с ожиданием подтверждения


    image


    Но на мгновение промелькнула посредническая ссылка, она то меня и заинтересовала.
    Она была вида:


    https://api.***.com/oauth/out/steam?url=https://my.***.com/other-settings

    Читать дальше →
  • Парадигмы программирования — парадигмы жизни

    Введение


    В данной статье я постараюсь поверхностно, не углубляясь в дебри, раскрыть понятие “Парадигма программирования”. Стоит отметить, что статья написана простым языком, в ней практически не рассматриваются сложные термины и специфичные для языков программирования понятия, поэтому она подойдет для прочтения как опытным программистам, так и людям, которые никогда не писали код.
    Читать далее...
  • Как не нужно сбрасывать вес не занимаясь спортом?

    Всем привет! Недавно вышла статья Как сбросить вес, не занимаясь спортом? Личный опыт.

    Которая может навредить всем, кто захочет сбросить вес подобным способом.

    В этой статье я хочу опровергнуть методику автора, и объяснить, с какими проблемами он столкнется в будущем и почему.
    Читать дальше →